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 =
rebuild
(prel +
1, prel + numleft, inl, k-1)
;//對其左子樹進行重建
root-
>right =
rebuild
(prel + numleft +
1, prer, k +
1, inr)
;//對其右子樹進行重建
return root;
//返回根節點}}
;
class
solution
treenode*
rebuild
(int postl,
int postr,
int inl,
int inr)
int numright = inr-k;
//右子節點的個數
treenode* root =
newtreenode
(in[k]);
root-
>left =
rebuild
(postl, postr-numright-
1, inl, k -1)
; root-
>right =
rebuild
(postr-numright,postr-
1,k +
1, inr)
;return root;}}
;
2.24
class
solution
treenode*
create
(vector<
int>
& preorder, vector<
int>
& inorder,
int prel,
int prer,
int inl,
int inr)
}//左子樹結點的個數,方便區間的填寫
int numsleft = k - inl;
//對於head的左子樹繼續構建
head-
>left =
create
(preorder, inorder, prel +
1, prel + numsleft, inl, inl + k -1)
;//對於head的右子樹繼續構建
head-
>right =
create
(preorder, inorder, prel +numsleft+
1, prer, k +
1, inr)
;//返回根結點位址
return head;}}
;
劍指offer 面試題07 重建二叉樹
輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。前序遍歷 preorder 3,9,20,15,7 中序遍歷 inorder 9,3,15,20,7 include include using namespace std struct t...
《劍指offer》 面試題07 重建二叉樹
輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如,給出 前序遍歷 preorder 3,9,20,15,7 中序遍歷 inorder 9,3,15,20,7 返回如下的二叉樹 3 9 20 15 7 限制 0 節點個數 5000 本題...
劍指Offer 面試題07重建二叉樹
劍指offer面試題彙總 題目描述 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。輸入輸出 前序遍歷 preorder 3,9,20,15,7 中序遍歷 inorder 9,3,15,20,7 返回 3 9 20 15 7解決方案 根據...