我正在使用二叉树在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;
}
答案 0 :(得分:0)
你不能将字符串作为更改参数,因为它是不可变的。 尝试:
return findAncestors(x.parent,outputString);
return findAncestors(x.parent,outputString);