PostOrder Traversal Java

时间:2015-11-04 05:14:42

标签: java recursion binary-search-tree

我试图在邮件订单遍历后返回我的树的字符串表示,但它正在给我作品。看起来像一个简单的代码,但我似乎无法得到它。调试也没有多大帮助。我忘记了我应该看的东西。这里出了什么问题? 我知道在这种意义上使用字符串是不好的做法,但我只是在扔东西。我本来可以使用字符串缓冲区或其他东西,但现在我难以理解为什么这不起作用并且想弄清楚原因。

  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 个答案:

答案 0 :(得分:0)

您没有添加子树的后期遍历。您可以将其更正为

private String postOrderTraversal(Node aux) {
    if(aux == null) return "";
    return postOrderTraversal(aux.left) + postOrderTraversal(aux.right) + aux.data;
}

答案 1 :(得分:0)

字符串是不可变对象。只是传递引用不会更新返回值。你应该试试StringBuilder。

 $scope.newList = function (val) {
      alert(val);
$scope.newfriends = $filter('filter')($scope.friends, {
    val: $scope.searcha
})