Leetcode 106. Construct Binary Tree from Inorder and Postorder Traversal
給出二叉樹的後根遍歷和中根遍歷,構造二叉樹。
瞭解後根遍歷和中根遍歷的特點。
每次在後根遍歷陣列中最右邊就是二叉樹的根,然後去中根遍歷陣列中找到根,根左邊的就是左子樹,根右邊的就是右子樹,對於左子樹和右子樹採取同樣的求法:去後根遍歷陣列中找根,利用中根遍歷陣列劃分左右子樹,遞迴求解。
class Solution {
public:
TreeNode* help(vector<int>& postorder,int l1, int r1, vector<int>& inorder, int l2, int r2)
{
if(l1>r1)
return nullptr;
else
{
int i;
TreeNode* root=new TreeNode(postorder[r1]);
for(i=l2; i<=r2; ++i)
{
if(inorder[i]==postorder[r1])
break;
}
root->left=help(postorder,l1, l1+i-1-l2, inorder, l2, i-1);
root->right=help(postorder,l1+i-l2, r1-1, inorder, i+1, r2);
return root;
}
}
TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder) {
return help(postorder, 0, postorder.size()-1,inorder, 0, inorder.size()-1);
}
};
相關文章
- [leetcode]binary-tree-inorder-traversalLeetCode
- LeetCode | 145. Binary Tree Postorder TraversalLeetCode
- Leetcode 145. Binary Tree Postorder TraversalLeetCode
- Leetcode 94. Binary Tree Inorder TraversalLeetCode
- LeetCode之Construct String from Binary Tree(Kotlin)LeetCodeStructKotlin
- Construct String from Binary TreeStruct
- Binary Tree Level Order Traversal [LEETCODE]LeetCode
- LeetCode | 144. Binary Tree Preorder TraversalLeetCode
- Leetcode 144. Binary Tree Preorder TraversalLeetCode
- LeetCode 272 Closest Binary Tree Traversal II 解題思路LeetCode
- [LeetCode] 2196. Create Binary Tree From DescriptionsLeetCode
- Binary-tree-level-order-traversal
- 102-Binary Tree Level Order Traversal
- 107-Binary Tree Level Order Traversal II
- 103. Binary Tree Zigzag Level Order Traversal
- Leetcode Binary Tree PathsLeetCode
- [LeetCode] Construct Quad Tree 建立四叉樹LeetCodeStruct
- [LeetCode] 226. Invert Binary TreeLeetCode
- [LeetCode] 543. Diameter of Binary TreeLeetCode
- LeetCode 543. Diameter of Binary TreeLeetCode
- LeetCode545.Boundary-of-Binary-TreeLeetCode
- Leetcode 226. Invert Binary TreeLeetCode
- [leetcode]maximum-depth-of-binary-treeLeetCode
- LeetCode之Univalued Binary Tree(Kotlin)LeetCodeKotlin
- LeetCode之Binary Tree Pruning(Kotlin)LeetCodeKotlin
- LeetCode#110.Balanced Binary Tree(Tree/Height/DFS/Recursion)LeetCode
- LeetCode のminimum-depth-of-binary-treeLeetCode
- Leetcode 298 Binary Tree Longest Consecutive SequenceLeetCode
- LeetCode 104. Maximum Depth of Binary TreeLeetCode
- LeetCode 98. Validate Binary Search TreeLeetCode
- leetcode-124-Binary Tree Maximum Path SumLeetCode
- [LeetCode] 501. Find Mode in Binary Search TreeLeetCode
- [LeetCode] 671. Second Minimum Node In a Binary TreeLeetCode
- LeetCode 124. Binary Tree Maximum Path SumLeetCode
- [leetcode]convert-sorted-array-to-binary-search-treeLeetCode
- LeetCode 501. Find Mode in Binary Search TreeLeetCode
- LeetCode C++ 968. Binary Tree Cameras【Tree/DFS】困難LeetCodeC++
- [LeetCode] 109. Convert Sorted List to Binary Search TreeLeetCode
- Java for LeetCode 109 Convert Sorted List to Binary Search TreeJavaLeetCode