106. Construct Binary Tree from Inorder and Postorder Traversal
2016-04-04 12:47
309 查看
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: TreeNode* build_tree(vector<int>& postorder, int l1,int r1,vector<int>& inorder,int l2,int r2,unordered_map<int,int> &m) { if(l1>r1) return NULL; TreeNode* root=new TreeNode(postorder[r1]); if(l1==r1) return root; int i=m[postorder[r1]]; root->left=build_tree(postorder,l1,l1+i-l2-1,inorder,l2,i-1,m); root->right=build_tree(postorder,l1+i-l2,r1-1,inorder,i+1,r2,m); return root; } TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder) { unordered_map<int,int> m; for(int i=0;i<inorder.size();i++) m[inorder[i]]=i; return build_tree(postorder,0,inorder.size()-1,inorder,0,inorder.size()-1,m); } };
相关文章推荐
- 创客空间
- C++11 std::bind std::function 高级使用方法
- GestureDetector手势识别浅析
- storyboard放大与缩小
- ZendFramework小例子——投票
- 开灯问题
- LCD电子书项目(三)
- 理解inode
- java线程池的使用
- HDU 3726 Graph and Queries(treap)
- java中的静态分派与动态分派
- AOP(以MVC中的过滤器为例)
- 分布式系统学习 - 书签
- 使用wireshark常用的过滤命令
- tomcat如何配置环境变量
- Linux LiveCD 的制作
- 小木虫emuch遭封禁,新域名muchong.com尚可用
- Tsinsen A1117 火车过站
- HIbernate里session的delete()方法
- 运算符重载。。