[Leetcode 106, Medium] Construct Binary Tree from Inorder and Postorder Traversal
来源:互联网 发布:cad画网络拓扑结构图 编辑:程序博客网 时间:2024/06/05 12:42
Problem:
Given inorder and postorder traversal of a tree, construct the binary tree.
Note:
You may assume that duplicates do not exist in the tree.
Analysis:
Solutions:
C++:
void BuildTreeAux(TreeNode *&root, vector<int>& postorder, int p_start, int p_end, vector<int>& inorder, int i_start, int i_end) { root = new TreeNode(postorder[p_end]); if(p_start == p_end) return; int index_value_inorder = i_start; for(; index_value_inorder <= i_end; ++index_value_inorder) { if(inorder[index_value_inorder] == postorder[p_end]) break; } if(index_value_inorder > i_start) { int sub_preorder_size = index_value_inorder - i_start; BuildTreeAux(root->left, postorder, p_start, p_start + sub_preorder_size - 1, inorder, i_start, i_start + sub_preorder_size - 1); } if(index_value_inorder < i_end) { int sub_preorder_size = i_end - index_value_inorder; BuildTreeAux(root->right, postorder, p_end - sub_preorder_size, p_end - 1, inorder, index_value_inorder + 1, i_end); } } TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder) { TreeNode *p_root = NULL; if(postorder.empty() || postorder.size() != inorder.size()) return NULL; BuildTreeAux(p_root, postorder, 0, postorder.size() - 1, inorder, 0, inorder.size() - 1); return p_root; }Java:
Python:
0 0
- [Leetcode 106, Medium] Construct Binary Tree from Inorder and Postorder Traversal
- LeetCode 106: Construct Binary Tree from Inorder and Postorder Traversal
- LeetCode(106)Construct Binary Tree from Inorder and Postorder Traversal
- LeetCode: Construct Binary Tree from Inorder and Postorder Traversal [106]
- LeetCode 106 Construct Binary Tree from Inorder and Postorder Traversal
- LeetCode 106 Construct Binary Tree from Inorder and Postorder Traversal
- [leetcode 106] Construct Binary Tree from Inorder and Postorder Traversal
- [LeetCode 106]Construct Binary Tree from Inorder and Postorder Traversal
- leetcode || 106、Construct Binary Tree from Inorder and Postorder Traversal
- Construct Binary Tree from Inorder and Postorder Traversal - LeetCode 106
- LeetCode 106:Construct Binary Tree from Postorder and Inorder Traversal
- LeetCode---(106)Construct Binary Tree from Inorder and Postorder Traversal
- LeetCode(106) Construct Binary Tree from Inorder and Postorder Traversal
- Leetcode #106 Construct Binary Tree from Inorder and Postorder Traversal
- leetcode 106: Construct Binary Tree from Inorder and Postorder Traversal
- LeetCode 106: Construct Binary Tree from Inorder and Postorder Traversal
- 【LEETCODE】106-Construct Binary Tree from Inorder and Postorder Traversal
- LeetCode 106 Construct Binary Tree from Inorder and Postorder Traversal
- altium designer 原理图复制出错
- fragment学两个demo就会用(二)
- poj 3468 A Simple Problem with Integers
- [Leetcode 105, Medium] Construct Binary Tree from Preorder and Inorder Traversal
- Unity3D之文件读写文件
- [Leetcode 106, Medium] Construct Binary Tree from Inorder and Postorder Traversal
- 百练oj2703
- Codeforces Round #313 (Div. 2) (ABCDE题解)
- [Leetcode 50, Medium] Pow(x, n)
- HDU 1707 Spring-outing Decision
- [Leetcode 108, Meidum] Convert Sorted Array to Binary Search Tree
- zoj1241
- Triumph! Android Studio 1.2 Sneaks In Full Testing Support(译文)
- Implement Stack using Queues && Implement Queue using Stacks