Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.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
在Java中将二叉树节点的所有祖先追加到字符串_Java_Binary Tree - Fatal编程技术网

在Java中将二叉树节点的所有祖先追加到字符串

在Java中将二叉树节点的所有祖先追加到字符串,java,binary-tree,Java,Binary Tree,我正在用Java编写一个使用二叉树的家族树程序。祖先方法从另一个类调用,并调用findAncestors递归运行,以将所有祖先附加到输出字符串。我在树上添加了父指针,希望能更容易地找到所有祖先 我使用的locate方法在树中搜索传递的字符串,并返回它所在的节点 我目前遇到的问题是,该方法只返回直接父节点,而不是返回节点的所有祖先 public String ancestors(String x) { String outputString = ""; if (locate

我正在用Java编写一个使用二叉树的家族树程序。祖先方法从另一个类调用,并调用findAncestors递归运行,以将所有祖先附加到输出字符串。我在树上添加了父指针,希望能更容易地找到所有祖先

我使用的locate方法在树中搜索传递的字符串,并返回它所在的节点

我目前遇到的问题是,该方法只返回直接父节点,而不是返回节点的所有祖先

public String ancestors(String x)
    {
    String outputString = "";
    if (locate(x).parent!=null)
        outputString = findAncestors(locate(x),outputString);
    return outputString;
    }

    private String findAncestors(Node x,String outputString)
    {
    if(x.parent != null)
        {
            outputString = outputString + String.valueOf(x.parent.value);
            findAncestors(x.parent,outputString);
        }
    return outputString;
    }

不能将该字符串作为更改参数b通过,因为它是不可变的。 尝试:

  return findAncestors(x.parent,outputString);

呸,你说得对!我没注意到那正盯着我的脸。谢谢