2017-01-16 13 views
0

私はバイナリ検索ツリーを持っていると私はこのような特定の値でサブツリーを取得したい戻りますJavaの再帰的なメソッドは常にnull

null

ただし、常にnull値を返します。私はなぜ、どのようにこの問題を解決するかを知りたい。ありがとう!

+1

はそれを見つけるためにデバッガを使用してください。私の最初の推測は、 'ルート'がヌルであることです – Jens

+4

再帰呼び出しの戻り値で何もしません。 –

+0

ルートはnullではありません。 –

答えて

3

getNode(root.left, c)getNode(root.right, c)が返す結果は評価されていません。

正しいは次のようになります。

private Node getNode(Node root, Object c) { 
    String datac = String.valueOf(c); 
    if(root == null) return null; 
    if(Objects.equals(datac, root.data)) return root; 
    Node tmp; 
    return ((tmp = getNode(root.left, c)) != null) ? tmp : getNode(root.right, c); 
} 
関連する問題