後継者を見つけて上に移動する必要がある 2 つのケースのコードを書きました。動作しているように見えますが、ツリーを印刷すると 2 つの子が作成されます。たとえば、私のツリーは
/
18
/ \
17 19
これは私が取り組んでいるツリーの一部にすぎません。18 を削除しようとすると削除されますが、ツリーを印刷すると 17 17 19 19 になります。以下は私のコードです。
System.out.println("what is t " + T.getData());
System.out.println("what is t's right " + T.getRight().getData());
System.out.println("what is t's left " + T.getLeft().getData());
sucessor = findSucessor(T);
System.out.println("2 what is sucessor " + sucessor.getData());
T.getRight().setLeft(sucessor.getRight());
sucessor.setLeft(T.getLeft());
T.setData(sucessor.getData());
私の後継者は、null でない限り右に 1 つ移動し、左端まで移動するため、この場合、後継者は 19 です。
私を混乱させているのはポインタだけだと思います。リンクを切り落としているわけではありませんが、どこにあるのかわかりません。