LeetCode 重建二叉樹

2021-10-08 09:45:56 字數 1038 閱讀 2234

前序遍歷:中—左----右

中序遍歷:左—中----右

後序遍歷:左—右----中

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。
/**

* definition for a binary tree node.

* struct treenode

* };

*/class

solution

// 中間子點

treenode* head_ =

newtreenode

(preorder[preleft]);

int i;

for(

int m = inleft; m <= inright; m++)}

int left_len = i - inleft;

int right_len = inright - i;

head_-

>left =

rebuildtree

(preorder,inorder,preleft+

1,preleft + left_len,inleft,i-1)

; head_-

>right =

rebuildtree

(preorder,inorder,preleft+left_len+

1,preleft+left_len+right_len+

1,i+

1,inright)

;return head_;

} treenode*

buildtree

(vector<

int>

& preorder, vector<

int>

& inorder)

};

執行結果:

Leetcode 重建二叉樹

leetcode 105 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。思路 前序遍歷 根節點 左子樹 右子樹 中序遍歷 左子樹 根節點 右子樹 根據兩個遍歷結果中都不存在重複數字,那麼前序遍歷的第乙個數值為起始點,找出該值在中序遍歷陣...

leetcode 二叉樹重建

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如,給出 前序遍歷 preorder 3,9,20,15,7 中序遍歷 inorder 9,3,15,20,7 返回如下的二叉樹 3 9 20 15 7 首先注意到題目中明確指出二叉樹遍歷...

LeetCode 重建二叉樹

原題鏈結 劍指 offer 07.重建二叉樹 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如,給出 前序遍歷 preorder 3,9,20,15,7 中序遍歷 inorder 9,3,15,20,7 返回如下的二叉樹 3 9 20...