常考資料結構與演算法 重建二叉樹

2021-10-19 03:44:22 字數 645 閱讀 5080

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。

[1,2,3,4,5,6,7],[3,2,4,1,6,5,7]

class testtreenode2 

}return root;

}// 重建主函式

public static treenode reconstructbinarytree(int pre,int in)

public static void main(string args) ; // 前序序列 前序序列的第乙個為根節點

int in = new int; // 中序序列 根節點的左邊為左子樹,右邊為右子數

treenode root = reconstructbinarytree(pre,in);

showpretree(root);

}static void showpretree(treenode node)

system.out.println(node.val);

if(null != node.left)

if(null != node.right)

}}

重建二叉樹python 資料結構 重建二叉樹

說明 給定輸入一棵二叉樹的前序遍歷和中序遍歷陣列。利用此重新建立二叉樹。注意輸入不包含相同的鍵值,否則情況複雜得多。思路 由定義,前序遍歷的第乙個記錄總是根節點,而這個鍵值在中序遍歷時,將中序遍歷的陣列分成兩部分,分別對應這個根節點的左右兩子樹。同時,前序遍歷陣列跟在節點後的陣列也分成兩部分,其中前...

資料結構與演算法之二叉樹的重建

二叉樹的重建 前面幾篇筆記講了二叉樹的表達與遍歷。那麼,有沒可能根據二叉樹遍歷的結果,來重建出一棵二叉樹呢?答案是肯定的。給出二叉樹前序遍歷的結果和中序遍歷的結果,我們就能根據這些資訊,重新生成二叉樹。這個問題相對來說有挑戰性,需要花費更長的時間來思考。看下面這棵樹 前序遍歷結果為pre 中序遍歷結...

演算法與資料結構 二叉樹

二叉樹 binary tree 二分樹 二元樹 二叉樹的遞迴定義 或是空樹,或是一棵由乙個根結點和左右子樹組成的樹,且左右子樹也是二叉樹。分枝結點 除葉結點以外的結點。二叉樹的性質 最多 2 h 1 個結點 n2 n0 1 滿二叉樹 所有分枝結點都存在左右子樹,且葉結點都在同一層。完全二叉樹 除最後...