【Leetcode】Construct Binary Tree from Inorder and Postorder Traversal
来源:互联网 发布:网络剧发行方式 编辑:程序博客网 时间:2024/06/10 03:50
Given inorder and postorder traversal of a tree, construct the binary tree.
Note:
You may assume that duplicates do not exist in the tree.
根据中序序列和后序序列构造二叉树,后序的最后一个结点一定是根结点,该结点可以把中序序列分成左右两部分,对应于左右子树的中序序列,根据左右两部分中结点的个数又可以把后序序列中除去最后一个结点的序列分成两部分,对应于左右子树的后序序列,这样就可以递归构造左右子树。
/** * 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) {// Start typing your C/C++ solution below// DO NOT write int main() functionreturn buildTree(inorder, 0, inorder.size()-1, postorder, 0, postorder.size()-1);}TreeNode *buildTree(vector<int> &inorder, int s0, int e0, vector<int> &postorder, int s1, int e1) {if (s0 > e0 || s1 > e1)return NULL;int rootval = postorder[e1];TreeNode * root = new TreeNode(rootval);int i,mid;for (i=s0; i<=e0; ++i){if (inorder[i] == rootval){mid = i;break;}}int leftnum = mid - s0;root->left = buildTree(inorder,s0,mid-1, postorder, s1,s1+leftnum-1);root->right = buildTree(inorder,mid+1,e0, postorder, s1+leftnum,e1-1);return root;}};
- *(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
- [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
- [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
- [LeetCode] Construct Binary Tree from Inorder and Postorder Traversal
- HAProxy---HAProxy简介
- MARS老师安卓开发学习_view
- Android有效解决加载大图片时内存溢出的问题详解
- Java乔晓松-Struts2中文件上传和多文件上传以及获取HttpServletRequest / HttpSession / ServletContext / HttpServletRespon
- SGA related init params
- 【Leetcode】Construct Binary Tree from Inorder and Postorder Traversal
- U盘安装ghost版本xp系统
- HAProxy---官网地址
- meituan笔试
- java图标设置
- JobTracker健康监控测试作业
- 根据先序中序求后序的递归算法
- ios屏幕尺寸
- Eclipse统计工程源码行数