輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。
例如,給出
前序遍歷 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解決方案 根據...