インタビューでこの質問が尋ねられました。バイナリツリーを考えてみましょう、私たちはそれぞれの要素が1バイナリツリー内で最も長い連続パスを見つける方法
EGによって異なり、最長パスの長さを印刷する必要があります。
6
/ \
5 7
/\ /\
2 4 8 9
答え:5 (4,5,6,7,8 )
これを行う方法? 私は、ルートからリーフまで増加するパスを印刷するためにalgoirthmを開発しましたが、私は両方のサブツリーにあるパスを追跡するものを開発していませんでした。
EDIT:変更後に元のツリーを元に戻す必要があります。
元のツリーを元に戻すためにツリーを変更し、それを維持することは愚かです。代わりに、「Math.Abs(node.value - parent.value)> 1」かどうかをチェックして、違いが複数あるツリーのセクションをスキップしてください。それが本当であれば、その道を下っていくことに意味はありません。 – displayName