0
を動作していないようFindParentバイナリツリー私のBNODEクラス方法はここ
class BNode
{
public int number;
public BNode left;
public BNode right;
public BNode(int number)
{
this.number = number;
}
}
そして、ここではFindParent方法の私の実装です
public BNode FindParent(BNode BNode, BNode searchNode)
{
if (searchNode.left == BNode || searchNode.right == BNode)
{
return searchNode;
}
if (searchNode.left != null)
{
return (FindParent(BNode, searchNode.left));
}
if (searchNode.right != null)
{
return (FindParent(BNode, searchNode.right));
}
return null;
}
は、私はそれを呼び出す方法です
BNode bnodeFound = btree.Find(18);
BNode bparent = btree.FindParent(bnodeFound, btree.rootNode);
数値がツリールートの最初のルートである場合を除き、常にnullを返します。私はまた、トラフのデバッグが、一番左のルートに行き、正しいルートがないことを確認してからnullを返すということを発見しました。これを理解しようとしましたが、成功しませんでした。私は同様の方法でツリー内の数字を見つけると、それを見つけるために働きます。
リターンコールを削除し、BNode returnNodeに戻り、nullでないかどうかをチェックします。ありがとうございました! –