Construct Binary Tree from Inorder and Postorder Traversal
来源:互联网 发布:windows编译hadoop 编辑:程序博客网 时间:2024/06/06 11:05
后序遍历的最后一个点肯定是树根,然后在中序遍历里找到这个树根,如此, 便得到两个子树,依次递归下去即可。
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: TreeNode *buildTree(vector<int> &inorder, vector<int> &postorder) { return build(inorder, 0, inorder.size() - 1, postorder, 0, postorder.size() - 1); } TreeNode *build(vector<int> &inorder, int i_s, int i_e, vector<int> &postorder, int p_s, int p_e) { if (i_s > i_e) return NULL; if (i_s == i_e) { TreeNode *t = new TreeNode(inorder[i_s]); return t; } int root = postorder[p_e]; int index_inorder = 0; for (; index_inorder < inorder.size(); ++index_inorder) if (inorder[index_inorder] == root) break; TreeNode *t = new TreeNode(root); t->left = build(inorder, i_s, index_inorder - 1, postorder, p_s, p_s + index_inorder - 1 - i_s); t->right = build(inorder, index_inorder + 1, i_e, postorder, p_s + index_inorder - i_s, p_e - 1); return t; }};
http://oj.leetcode.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal/
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
- 虚拟磁盘空间不足虚拟电脑运行发生错误的原因及解决
- The project cannot be built until build path errors are resolved 以及 Android项目没有R文件,没有.apk文件
- php一维数组遍历中常见的问题
- 发布一个多线程安全的内存池
- php二维数组中常见的问题
- Construct Binary Tree from Inorder and Postorder Traversal
- ffmpeg中的sws_scale算法性能测试
- 浅谈C#托管程序中的资源释放问题
- PyDev的使用-高效Py编程
- Unity3D学习笔记总结
- [算法]CSDN编程挑战赛之寻找直方图中面积最大的矩形
- OxMetrics Maximum Likelihood Estimation
- 简明Vim练级攻略
- linux字符驱动之点亮LED