1
TreeNode search(int value, TreeNode root)
{

    if(root.data==value)
    {
        return root;
    }
    else if(root.data < value)
    {
        search(value, root.Right);
    }
    else if (root.data > value)
    {
        search(value, root.Left);
    }

   return root;

}

BST でノードを検索したいのですが、問題は、この関数が数回返されることです。正しいノードを返しますが、最終的に Null を返します。それを改善するのを手伝ってください。

4

1 に答える 1

1

変化する

    search(value, root.Right);

    return search(value, root.Right);

(および についてもroot.Left)。

そうしないと、再帰呼び出しの戻り値が無視されます。

于 2013-04-27T11:53:40.197 に答える