1
誰かがProrderとInorderの配列を使ってバイナリツリーを復元する方法を教えてもらえますか?私はいくつかの例を見てきましたが(JavaScriptはありません)、それは意味がありますが、再帰呼び出しは試してみると完全なツリーを返すことはありません。説明を見るのが大好きです。ここでオフを開始するためにいくつかのコードです:ツリーノードがこれを使用して作成PreOrderとInOrderでバイナリツリーを復元する - Javascript
:ツリーを作成する
function Tree(x) {
this.value = x;
this.left = null;
this.right = null;
}
はこれを使用しています。
function retoreBinaryTree(inorder, preorder) {
}
いくつかのサンプル入力:
inorder = [4,2,1,5,3]
preorder = [1,2,4,3,5,6]
inorder = [4,11,8,7,9,2,1,5,3,6]
preorder = [1,2,4,11,7,8,9,3,5,6]
をEDIT私は数日間この作業をしていたし、wを出すことができませんでした私自身の解決策で、私はいくつかを探し出した(ほとんどはJavaで書かれていた)。私はthis solutionを模倣しようとしたが、役に立たなかった。
素敵試してみましたか? –
私は、preorderとinorderのリストだけでなく、startやendのような数字を表すvariblesと同様に、build treeという再帰関数を作成しようとしました。この関数はノードを作成し、そのノードの値のインデックスに基づいて開始と終了を調整します。存在する場合は左右のノードを見つけて、ノードを返します。問題は完全なツリーが返されないことです。ここで私はその解決策を得たところに投稿します。 –