二分探索木があります。検索プロパティを使用して検索する方法を知っています。しかし、私の仕事は、検索プロパティを使用せずにツリーを検索することです (たとえば、二分木で検索します)。これが私の検索方法です。
1 . 現在のノードで値が見つかった場合は、それを返します。
2 . そうでなければ右に検索します。右に見つからない場合は、左に検索します
3 . ツリー全体で見つからない場合は null を返します。
これは私が試したものです。
public Node search(int val)
{
Node target = this;
if(target.getVal() == val)
return this;
else if(target.getRight() == null && target.getLeft() == null)
return null;
if(target.getRight() != null)
{
return target.getRight().search(id);
}
if(target.getLeft() != null)
{
return target.getLeft().search(id);
}
return null;
}
私のコードの問題は、右の子が存在し、右に val が見つからない場合、null
値を取得していることです。(左側を検索していません)。これを解決するには?