《劍指offer》 面試題07 重建二叉樹

2021-10-06 19:32:19 字數 1393 閱讀 5465

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

例如,給出

前序遍歷 preorder = [3,9,20,15,7]

中序遍歷 inorder = [9,3,15,20,7]

返回如下的二叉樹:

3/ \

9 20

/ \15 7

限制:0 <= 節點個數 <= 5000

本題直接利用的是二叉樹先序遍歷和中序遍歷的特點,通過遞迴來求解出答案。

1、通過先序遍歷,拿到第乙個節點,即為二叉樹根節點;

2、利用該根節點,算出左子樹節點數量,右子樹節點數量;

3、利用數量和根節點在中序節點中遍歷,分別算出當前二叉樹左右子樹的對應先序遍歷列表和中序遍歷列表;

4、遞迴求解;

劍指offer 面試題07 重建二叉樹

6.24更新 class solution treenode rebuild int prel,int prer,int inl,int inr int numleft k inl 左節點個數 treenode root newtreenode in k 新建乙個節點作為其根節點 root left...

劍指offer 面試題07 重建二叉樹

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。前序遍歷 preorder 3,9,20,15,7 中序遍歷 inorder 9,3,15,20,7 include include using namespace std struct t...

劍指Offer 面試題07重建二叉樹

劍指offer面試題彙總 題目描述 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。輸入輸出 前序遍歷 preorder 3,9,20,15,7 中序遍歷 inorder 9,3,15,20,7 返回 3 9 20 15 7解決方案 根據...