重建二叉树:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
来源:互联网 发布:mysql 数据文件 编辑:程序博客网 时间:2024/06/01 10:25
例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。
/**
* Definition for binary tree
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
TreeNode* reConstructBinaryTree(vector<int> pre,vector<int> vin)
{
if(pre.size()==0||vin.size()==0)
return NULL;
int root=pre[0];
TreeNode *Node=new TreeNode(root);
vector<int>::iterator it;
vector<int> vinleft,vinright,preleft,preright;
vector<int>::iterator i;
//找出根节点在中序遍历序列中的位置,赋给i
for(it=vin.begin();it!=vin.end();it++)
{
if(root==*it)
i=it;
}
//根据根节点在中序遍历序列中的位置,将中序序列分为左子树右子树
int number=0;//记录左子树的节点个数
for(it=vin.begin();it!=vin.end();it++)
{
if(it<i)
{
vinleft.push_back(*it);
number++;
}
if(it==i)
continue;
if(it>i)
vinright.push_back(*it);
}
//将前序序列分为左子树和右子树
vector<int>::iterator itp;
for(itp=pre.begin()+1;itp!=pre.end();itp++)
{
if(itp<=pre.begin()+number)//前序序列中,根节点后面number个数为左子树的结点
preleft.push_back(*itp);
else
preright.push_back(*itp);
}
Node->left=reConstructBinaryTree( preleft,vinleft);
Node->right=reConstructBinaryTree( preright,vinright);
return Node;
}
};
- 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
- 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
- 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
- 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5
- 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5
- 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5
- 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5
- 重建二叉树:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
- java 剑指offor 第四题:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}
- 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。
- 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。
- 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。
- 输入某二叉树的前序遍历和中序遍历的结果请重建出该二叉树。
- 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。
- 重建二叉树,输入某二叉树的前序遍历和中序遍历的结果,重建出二叉树,假设输入的前序和中序遍历结果中不含重复的数字
- 输入某二叉树的前序遍历和中序遍历的结果重建出该二叉树。设输入的前序遍历和中序遍历的结果中都不含重复的数字。如输前序{1,2,4,7,3,5,6,8}和中序{4,7,2,1,5,3,8,6},则重建。
- 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。
- 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。
- java compiler level does not match解决方法
- mysql(一)
- UGUI
- vue
- 深入理解bootloader_1----- bootloader的初步概念
- 重建二叉树:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
- 如何看待 Kotlin 成为 Android 官方支持开发语言?
- webpack简单配置
- pycharm安装包
- 常用的数据类型范围
- 网络判断——没网点击进入设置(ConnectivityManager)
- JAVA设计模式一单例模式
- 【java】nginx的5个特点
- Sass安装