Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用java实现二叉树的toString方法_Javascript_Java_Binary Tree - Fatal编程技术网

Javascript 用java实现二叉树的toString方法

Javascript 用java实现二叉树的toString方法,javascript,java,binary-tree,Javascript,Java,Binary Tree,预期的(A(D())(B(C())) 获得A(D())(B(C())()) 我失去了第一个和最后一个括号 private String toString(BinaryNode curr) { String str = ""; if(curr == null) { return str; } else{ str += curr.value; str += "(" + toString(curr.left) + ") (" + toStrin

预期的
(A(D())(B(C()))

获得
A(D())(B(C())())

我失去了第一个和最后一个括号

private String toString(BinaryNode curr) {

    String str = "";
    if(curr == null) {
        return str;
    } else{
    str += curr.value;
    str += "(" + toString(curr.left) + ") (" + toString(curr.right) + ")";
    }

    return str;
}
如果我更改了代码,我得到了
(A((D())((B((C()))))


您需要确定代码的哪一部分负责用括号括起来。返回的人似乎完成了任务:

private String toString(BinaryNode curr) {

    String str = "";
    if(curr == null) {
        return str;
    } else{
        str += curr.value+" ";
        str += toString(curr.left) + toString(curr.right);
    }

return "(" + str + ")";

}

非常感谢您!我应该把括号放在递归之外。
private String toString(BinaryNode curr) {

    String str = "";
    if(curr == null) {
        return str;
    } else{
        str += curr.value+" ";
        str += toString(curr.left) + toString(curr.right);
    }

return "(" + str + ")";