0
我知道正在搜索的节点位于未排序的二叉树中,但我无法弄清楚如何通过递归调用回传路径。我的两个功能:一个找到特定节点的路径,另一个返回所有节点的路径字符串。 0表示左侧路径,右侧1路。递归找到二叉树中节点的路径
private static String getAllPaths(final BinaryNodeInterface<Character> root)
{
// TO DO
String path = "";
String returnStr = "";
return getAP(root, path, returnStr);
}
private static String getAP(BinaryNodeInterface<Character> root, String path,
String returnStr)
{
returnStr += "" + root.getData() + " " + path + "\n";
if(root.hasLeftChild())
getAP(root.getLeftChild(), path.concat("0"), returnStr);
if(root.hasRightChild())
getAP(root.getRightChild(), path.concat("1"), returnStr);
return returnStr;
}
private static String getPathTo(final BinaryNodeInterface<Character> root, char c)
{
// TO DO
String path = "";
if(root.getData() == c)
return path;
if(root.hasLeftChild())
{
String s = getPathTo(root.getLeftChild(), c);
if(s != null)
{
path += "0";
path += s;
return path;
}
}
if(root.hasRightChild())
{
String s = getPathTo(root.getRightChild(), c);
if(s != null)
{
path += "1";
path += s;
return path;
}
}
return null;
}
我在递归方面很糟糕,所以任何帮助都非常感谢。我完成了所有的工作。上面的代码现在很好。谢谢您的帮助。