lintcode- 前序遍历和中序遍历树构造二叉树-73
2015-10-19 01:00
627 查看
/** * Definition of TreeNode: * class TreeNode { * public: * int val; * TreeNode *left, *right; * TreeNode(int val) { * this->val = val; * this->left = this->right = NULL; * } * } */ class Solution { public: TreeNode *buildTree(vector<int> &pre,vector<int> &in,int ps,int pe,int is,int ie){ int record=pre[ps]; TreeNode *root= new TreeNode(record); if(ps==pe) return root; int i; for(i=is;i<=ie;++i) if(in[i]==record) break; if(is<=i-1) root->left =buildTree(pre,in,ps+1,ps+(i-is),is,i-1); if(i+1<=ie) root->right=buildTree(pre,in,ps+(i-is)+1,pe,i+1,ie); return root; } TreeNode *buildTree(vector<int> &preorder, vector<int> &inorder) { if(inorder.empty()&&preorder.empty()) return nullptr; if(inorder.size()!=preorder.size()) return nullptr; return buildTree(preorder,inorder,0,preorder.size()-1,0,inorder.size()-1); } };
相关文章推荐
- IOS 分享 牛人 Demo
- 【我的问题】没解决的问题
- lintcode-中序遍历和后序遍历树构造二叉树-72
- android 自定义Toast显示风格
- ios输入内容正则表达式的应用
- 归并排序(Merge Sort)
- jquery 基础
- 黑马程序员---成长之路-----OC之基础篇MRC内存管理
- 关于微博的正文的整个思维逻辑 (含有只有图片数量计算图片九宫格算法)
- NSIndexSet无符号整数集合
- RecyclerView设置Item点击事件
- [UVA 247]Calling Circles[传递闭包][floyd]
- Python安装环境搭建(python+pycharm+pid)
- android 48 广播
- Win+R运行自定义程序应该这样玩
- PCA数据降维
- PCA数据降维
- JAVA基础学习day24--Socket基础一UDP与TCP的基本使用
- Leetcode Subsets
- socket服务器如何读取http协议的一行