73_leetcode_Construct Binary Tree from Inorder and Postorder Traversal
2016-02-19 11:44
281 查看
Given inorder and postorder traversal of a tree, construct the binary tree
1:中序和后序遍历构成一棵树。2:採用递归的方法。3:把两个数组分别分成两部分;4:注意递归结束情况
1:中序和后序遍历构成一棵树。2:採用递归的方法。3:把两个数组分别分成两部分;4:注意递归结束情况
TreeNode *buildTree(vector<int> &inorder, vector<int> &postorder) { if(inorder.size() == 0 || postorder.size() == 0 || inorder.size() != postorder.size()) { return NULL; } int size = (int)inorder.size(); return buildTreeCore(inorder, 0, postorder, 0, size); } TreeNode *buildTreeCore(vector<int> &inorder, int inStart, vector<int> &postorder, int postStart, int length) { if(length == 1) { if(inorder[inStart] != postorder[postStart]) { return NULL; } } int rootValue = postorder[postStart + length - 1]; TreeNode *root = new TreeNode(rootValue); int i = 0; for(; i < length; i++) { if(inorder[inStart + i] == rootValue) { break; } } if(i == length) { return NULL; } if(i > 0) { root->left = buildTreeCore(inorder, inStart, postorder, postStart, i); } if(i < length - 1) { root->right = buildTreeCore(inorder, inStart + i + 1, postorder, postStart + i, length - i - 1); } return root; }
相关文章推荐
- Mac OS系统 - 将视频转换成gif
- JSTL简介
- 推荐大家去博客园看我的博客:http://www.cnblogs.com/bj-xy/点击随笔分类,Python基础学习
- linux下maven的安装
- LightOJ 1356 Prime Independence(素数筛选法+最大独立集)(Hopcroft-Carp算法)
- eclipse tomcat热部署问题相关
- Swfit中视图跳转
- bzoj2946 [Poi2000]公共串(SA,SAM)
- mysql 报Packet for query is too large 的解决方法
- Redis配置文件详解
- Oracle 11G R2利用RMAN搭建DataGuard环境
- Activity的启动流程
- Android中的Bitmap和Drawable
- 线程传参数问题
- [译] ASP.NET 生命周期 – ASP.NET 上下文对象(七)
- 解决一个 undefined reference to `vtable for XXX 问题
- Redis配置文件详解
- Windows如何修改MySQL用户root密码
- Git -- 分支管理简介
- 如何成为一名优秀的全栈工程师