重建二叉树
来源:互联网 发布:行知社会实践园游后感 编辑:程序博客网 时间:2024/06/11 09:45
题目描述
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。
代码:
struct TreeNode* reConstructBinaryTree(vector<int> pre,vector<int> in) { int prelen = pre.size(); int inlen = in.size(); int i = 0; if(prelen == 0 || inlen == 0 || inlen != prelen) return NULL; TreeNode* Root = new TreeNode(pre[0]); for(i = 0;i < inlen;i++){ if(pre[0] == in[i]) break; } if(i == inlen) return NULL; vector<int> preLeft; vector<int> inLeft; vector<int> preRight; vector<int> inRight; for(int j = 0; j < i;j++){ inLeft.push_back(in[j]); preLeft.push_back(pre[j+1]); } for(int j = i+1; j < inlen;j++){ inRight.push_back(in[j]); preRight.push_back(pre[j]); } Root->left = reConstructBinaryTree(preLeft,inLeft); Root->right = reConstructBinaryTree(preRight,inRight); return Root; }
0 0
- 3.9重建二叉树
- 重建二叉树
- 二叉树重建
- 二叉树重建
- 二叉树的重建
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 二叉树重建
- 二叉树重建
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 编写高质量代码(5)
- reduce里的一个坑
- 修改Android Studio的字体
- linux下出现ping:unknown host www.baidu.com问题时的解决办法——ubuntu下局域网络的配置
- 1047. Student List for Course (25)
- 重建二叉树
- Liferay:JSP中可直接引用的Liferay对象
- Letter Combinations of a Phone Number
- uva227 - Puzzle
- python多线程操作【概念】
- Linux 网络基本属性的配置(红帽系列)
- PowerDesigner学习概要
- 哈希解决冲突
- 1048. Find Coins (25)