我遇到一个问题,我的方法仅以字符串形式返回根节点。如果我在 helperPostOrder 方法中打印节点,它会正确打印邮政订单。
public String postorder()
{
return helperPostOrder(root, ""); // method calling
}
private String helperPostOrder(Node root , String s){
if(root != null)
{
if(hasLeft(root)){
helperPostOrder(root.left, s);
}
if(hasRight(root)){
helperPostOrder(root.right, s);
}
s = s + " " + root;
}
return s;
}
最佳答案
你能试试吗?我这里没有编译器,但我认为它是正确的:
public String postorder()
{
return helperPostOrder(root, ""); // method calling
}
private String helperPostOrder(Node root , String s){
if(root != null)
{
if(hasLeft(root)){
s = s + " " + helperPostOrder(root.left, s);
}
if(hasRight(root)){
s = s + " " + helperPostOrder(root.right, s);
}
}
return s;
}
由 @Ole V.V. 添加: 你的递归调用 helperPostOrder(root.left, s);不是修改 s,即您要返回的值。这可能就是为什么您的方法返回根值而没有左子树和右子树的原因。
关于java - 在java中使用递归返回树的后序表达式的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43544251/