我需要找到某个节点的路径,其中0表示左侧分支,1表示右侧。
这是我的代码。
private static String getPathTo(final BinaryNodeInterface<Character> root, char c)
{
// TO DO
String path = "";
return getPT(root, c, path);
}
private static String getPT(BinaryNodeInterface<Character> root, char c, String path)
{
if( root.getData().equals(c) )
return path;
if( (root.getData() > c) && (root.getLeftChild() != null) )
{
path = path + "0";
getPT(root.getLeftChild(), c, path);
}
if( (root.getData() < c) && (root.getRightChild()!= null) )
{
path = path + "1";
getPT(root.getRightChild(), c, path);
}
return "CHARACTER NOT FOUND";
}
它只返回&#34;字符未找到&#34;除了根。我真的很困惑,因为它似乎很直接,但显然我做错了。
答案 0 :(得分:0)
除非此检查一直赢得
if( root.getData().equals(c) )
您将返回"CHARACTER NOT FOUND"
,因为其他if()
语句会失效并且不返回任何内容。