剑指offer——重建二叉树
2017-12-26 19:52
435 查看
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。
class Solution { public: TreeNode* reConstructBinaryTree(vector<int> pre,vector<int> vin) { return ReBuildTree(pre, 0, pre.size()-1, vin, 0, vin.size()-1); } private: TreeNode* ReBuildTree(vector<int> pre, int startPre, int endPre, vector<int> vin, int startVin, int endVin){ if (startPre>endPre) return NULL; if (startVin>endVin) return NULL; TreeNode* root=new TreeNode(pre[startPre]); for(int i=startVin;i<=endVin;++i){ if(vin[i]==pre[startPre]){ root->left=ReBuildTree(pre, startPre+1, startPre+i-startVin, vin, startVin, i-1); root->right=ReBuildTree(pre, startPre+i-startVin+1, endPre, vin, i+1, endVin); } } return root; } };
相关文章推荐
- 剑指offer 面试题6—重建二叉树
- 剑指offer面试题6 重建二叉树(java实现)
- 【剑指offer】如何通过先序遍历与中序遍历重建二叉树
- 剑指offer-重建二叉树
- 剑指Offer学习总结-重建二叉树
- [牛客网,剑指offer,python] 重建二叉树
- 剑指Offer(4)______重建二叉树
- 剑指Offer面试题6[重建二叉树]
- 剑指offer-重建二叉树
- 剑指offer之重建二叉树
- 剑指offer 重建二叉树 java实现
- 剑指offer:重建二叉树(java)
- 剑指offer之重建二叉树
- 剑指offer:重建二叉树
- 剑指offer-面试题6-重建二叉树
- 【剑指Offer】重建二叉树
- [牛客网,剑指offer,python] 重建二叉树
- 剑指offer——重建二叉树
- 剑指offer-chapter2-面试题6-重建二叉树(java)
- 剑指offer--面试题6 重建二叉树