将二叉树节点的所有祖先附加到Java中的String

时间:2013-04-12 10:36:17

标签: java binary-tree

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

我使用的locate方法在树中搜索传递的String并返回它所在的Node。

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

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;
    }

1 个答案:

答案 0 :(得分:0)

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

  return findAncestors(x.parent,outputString);

return findAncestors(x.parent,outputString);