2

二分木をアンスレッドする必要があります。これが意味することは、次の方法があるということです

  public static <T> BinaryNode<T> unthread(BinaryNode<T> root)

これはダブル スレッド バイナリ ツリーを受け取り、アンスレッド ツリーを返すことになっています。つまり、以前は null だった追加のノードを削除して、再度 null にする必要があります。

私がこれを行うべきだと思う方法は、すべてのノードでリンクされたリストを作成し、スレッド化されたツリーとリンクされたリストをパラメーターとして持つヘルパー メソッドを呼び出すことです。次に、ツリーをトラバースし、ノードが既にアクセスされている場合は、それを削除する必要があることを意味します。

それがうまくいくかどうかはわかりません。あなたの提案は何ですか?

4

1 に答える 1

0

出来た :)。事前注文トラバーサルとリンクリストを使用しました。私が言ったように、ノードがリンクリストにあり、それを追加しなかった場合、それだけです。

于 2013-04-07T18:12:12.647 に答える