无法在BinarySearchTree中找到节点的路径

时间:2014-11-20 00:16:01

标签: java path nodes binary-search-tree

我需要找到某个节点的路径,其中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;除了根。我真的很困惑,因为它似乎很直接,但显然我做错了。

1 个答案:

答案 0 :(得分:0)

除非此检查一直赢得

if( root.getData().equals(c) )

您将返回"CHARACTER NOT FOUND",因为其他if()语句会失效并且不返回任何内容。