105. Construct Binary Tree from Preorder and Inorder Traversal
2016-02-26 20:13
519 查看
题目:
Given preorder and inorder traversal of a tree, construct the binary tree.
Note:
You may assume that duplicates do not exist in the tree.
解题思路:
Given preorder and inorder traversal of a tree, construct the binary tree.
Note:
You may assume that duplicates do not exist in the tree.
解题思路:
/** * 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* buildTree(vector<int>& preorder, vector<int>& inorder) { return buildTree_help(preorder,0,preorder.size()-1, inorder,0,inorder.size()-1); } TreeNode* buildTree_help(vector<int>& preorder,int start_pre,int end_pre, vector<int>& inorder,int start_in,int end_in){ if(start_pre>end_pre)return NULL; TreeNode *root = new TreeNode(preorder[start_pre]); int i = find(inorder.begin()+start_in,inorder.begin()+end_in,root->val) - inorder.begin()-start_in; root->left = buildTree_help(preorder,start_pre+1,start_pre+i, inorder,start_in,start_in+i-1); root->right = buildTree_help(preorder,start_pre+i+1,end_pre, inorder,start_in+i+1,end_in); return root; } };
相关文章推荐
- U盘安装Windows 10和Ubuntu Linux双系统图解教程
- 慢跑鞋 zocm txks eett
- 静态变量和实例变量的区别?
- eclipse 中的凝视 快捷键
- windows10添加电源计划修改的快捷方案
- iOS开发系列--并行开发其实很容易
- 深入理解Java:注解(Annotation)自定义注解入门
- 拦截导弹(动态规划)
- MySQL索引原理与慢查询优化
- redis新开辟端口
- 顺序表的实现---静态
- dedecms导航判断当前选中样式的方法
- #include #import @class 讲解
- Android ROM开发(二)——ROM架构以及Updater-Script脚本分析,常见的Status错误解决办法
- 第一章 欢迎来的Code First(4)
- The identity used to sign the executable is no longer valid
- Android ROM开发(二)——ROM架构以及Updater-Script脚本分析,常见的Status错误解决办法
- swift语法(三)
- codeforces 622D D. Optimal Number Permutation(找规律)
- 驾照考试:六百公里考试流程与注意事项