Construct Binary Tree from Inorder and Postorder Traversal
来源:互联网 发布:疯狂粤语 粤知一二 编辑:程序博客网 时间:2024/06/05 20:24
递归,代码如下:
class Solution {public: TreeNode *buildTree(vector<int> &inorder, vector<int> &postorder) { return buildTree1(inorder, postorder, 0, 0, inorder.size()); } TreeNode *buildTree1(vector<int> &inorder, vector<int> &postorder, int begin1, int begin2, int len) { if(len == 0) return NULL; TreeNode *left, *right, *rootNode; int root = postorder[begin2+len-1]; int index = begin1; for(; index<begin1+len; ++index) { if(inorder[index] == root) { rootNode = new TreeNode(root); rootNode->left = buildTree1(inorder, postorder, begin1, begin2, index-begin1); rootNode->right= buildTree1(inorder, postorder, index+1, begin2+(index-begin1), len-(index-begin1)-1); return rootNode; } } }};
9.02最新代码,注意细节:
class Solution {public: TreeNode *buildTree(vector<int> &inorder, vector<int> &postorder) { int len = inorder.size(); if(len == 0) return NULL; return build(inorder, postorder, 0, 0, len); } TreeNode *build(vector<int> &inorder, vector<int> &postorder, int si, int sp, int len) { if(len<=0) return NULL; TreeNode *root = new TreeNode(postorder[sp+len-1]); for(int i=0; i<len; i++) { if(postorder[sp+len-1] == inorder[si+i]) { root->left = build(inorder, postorder, si, sp, i); root->right = build(inorder, postorder, si+i+1, sp+i, len-i-1); return root; } } }};
0 0
- *(leetcode) Construct Binary Tree from Inorder and Postorder Traversal (tree)
- LeetCode[Tree]: Construct Binary Tree from Inorder and Postorder Traversal
- LeetCode: Construct Binary Tree from Inorder and Postorder Traversal
- [LeetCode]Construct Binary Tree from Inorder and Postorder Traversal
- LeetCode Construct Binary Tree from Inorder and Postorder Traversal
- LeetCode: Construct Binary Tree from Inorder and Postorder Traversal
- LeetCode: Construct Binary Tree from Inorder and Postorder Traversal
- Construct Binary Tree from Inorder and Postorder Traversal
- [LeetCode] Construct Binary Tree from Inorder and Postorder Traversal
- LeetCode Construct Binary Tree from Inorder and Postorder Traversal
- [Leetcode] Construct Binary Tree from Inorder and Postorder Traversal
- leetcode 110: Construct Binary Tree from Inorder and Postorder Traversal
- 【leetcode】Construct Binary Tree from Inorder and Postorder Traversal
- Construct Binary Tree from Inorder and Postorder Traversal
- [LeetCode]Construct Binary Tree from Inorder and Postorder Traversal
- Construct Binary Tree from Inorder and Postorder Traversal
- [leetcode]Construct Binary Tree from Inorder and Postorder Traversal
- Construct Binary Tree from Inorder and Postorder Traversal
- 每日一练 02 菲波那切数列
- HDU OJ 1010 dfs+剪枝
- 我的android(第五天)
- oracle ORA-01438
- 理解python装饰器
- Construct Binary Tree from Inorder and Postorder Traversal
- 字符串
- POJ 1077 八数码问题 练习搜索
- 有关main的返回值
- ORACLE EXTRACT函数
- 第三周练习题目——二分法1 水的高度
- 算法学习(四)冒泡排序
- MFC不同对话框之间的数据传递
- HDU 1513 Palindrome