我试图在发布命令遍历后返回我的树的字符串表示形式,但它给了我作品。看起来像一个足够简单的代码,但我似乎无法得到它。调试也不是很有帮助。我失去了我应该看的东西。这里出了什么问题? 我知道在这个意义上使用字符串是不好的做法,但我只是把东西扔在一起。我可以使用字符串缓冲区或其他的东西,但现在我很难理解为什么这不起作用,并想弄清楚原因。PostOrder Traversal Java
public String postOrderTraversal(){
String answer = "";
return postOrderTraversal(root, answer);
}
private String postOrderTraversal(Node aux, String answer){
if(aux == null){
return "";
}
else{
postOrderTraversal(aux.left, answer);
postOrderTraversal(aux.right, answer);
answer += aux.data;
}
return answer;
}
不幸的是,这并没有奏效。在我的测试中,它多次重复了左侧的孩子和根。它应该已经打印2,5,6,10,9,4但是打印2,2,2,2,5,6,2,2,2,5,6,10,9,4 –
您可以尝试修改码。实际上,您不需要将字符串“answer”传递给递归调用。 – 0605002
是的。这样可行!呵呵。所以你实际上并不需要一个字符串值来跟踪它。我先用字符串缓冲区试了一下,并认为也许相同的方法也适用于字符串。显然不是。 –