二叉树 知道其他两种遍历方式求另一种
来源:互联网 发布:avmoo最新域名2016 8 编辑:程序博客网 时间:2024/05/22 02:20
已知先序和中序
/** * 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){ int prel=preorder.size(); int in=inorder.size(); return suan(preorder,0,prel-1,inorder,0,in-1);}TreeNode* suan(vector<int>& preorder,int ps,int pe, vector<int>& inorder,int is,int ie){ if(ps==pe) return new TreeNode(preorder[ps]); if(is>ie||ps>pe) return NULL; TreeNode* root = new TreeNode(preorder[ps]); int i=is; while(i<=ie) { if(inorder[i]==preorder[ps]) break; i++; } int len=i-is; root->left=suan(preorder,ps+1,ps+len,inorder,is,is-1+len); root->right=suan(preorder,ps+1+len,pe,inorder,is+len+1,ie); return root;}};
已知后序和中序
/** * 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>& inorder, vector<int>& postorder){ int io=inorder.size(); int po=postorder.size(); return suan(inorder,0,io-1,postorder,0,po-1);}TreeNode* suan(vector<int>& inorder,int is,int ie, vector<int>& postorder,int ps,int pe){ if(is==ie) return new TreeNode(inorder[is]); else if(is>ie) return NULL; TreeNode* root = new TreeNode(postorder[pe]); int i=is; while(i<=ie) { if(inorder[i]==postorder[pe]) break; i++; } int len=i-is; root->left=suan(inorder,is,is+len-1,postorder,ps,ps-1+len); root->right=suan(inorder,is+1+len,ie,postorder,ps+len,pe-1); return root;}};
0 0
- 二叉树 知道其他两种遍历方式求另一种
- 二叉树面试题--已知二叉树的两种遍历序列,求出另一种遍历序列
- 二叉树面试题--已知二叉树的两种遍历序列,求出另一种遍历序列
- 二叉树:由已知两种遍历求未知遍历
- 已知两种二叉树的遍历,求第三种
- 已知两种遍历序列求原始二叉树
- 已知两种遍历序列求原始二叉树
- 根据已知二叉树的遍历顺序,求另一种遍历顺序
- 二叉树的两种遍历方式[递归遍历][非递归遍历]
- 二叉树 已知 两种遍历序列 求第三种遍历序列
- 根据二叉树的两种遍历求二叉树的结构
- 两种方式遍历二叉树--递归方式和非递归方式
- 知道后续遍历和中序遍历还原二叉树并求层析遍历
- 已知某二叉树的某两种遍历序列,求另一种遍历序列面试题解法总结(转)
- 两种常见的方式实现二叉树的中序遍历
- 二叉树遍历(递归和非递归两种方式)
- 二叉树:由已知的遍历方式求另外的遍历方式
- uva548 比较经典的知道两种遍历序列构造二叉树,注意后面的dfs的回溯
- 与“雾霾”相关的英语表达
- 初识机器学习和线性分类器
- Putty配色
- MySQL NULL 值处理
- 算法 数独问题
- 二叉树 知道其他两种遍历方式求另一种
- android中使用Retrofit调用https接口及缓存
- cs231n笔记1
- linux串口编程说明
- Java中的常用异常处理方法
- Exception in thread "main" java.lang.UnsatisfiedLinkError: Cannot load 32-bit SWT libraries on 64-bi
- Hibernate 一对多注解 mappedby 作用
- 448. Find All Numbers Disappeared in an Array
- 各种滤波原理