面试题7:重建二叉树
链接
这里是引用
LeetCode
题目
输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
解决
思路比较简单,写法稍微注意细节
struct TreeNode* Creat(int* preorder,int left1,int right1,int* inorder,int left2,int right2)
/*left1和right1分别代表先序遍历数组的首尾left2和right1分别代表先序遍历数组的首尾
*/
{if(left1>right1)//数组长度为0{return NULL;}struct TreeNode* ret=(struct TreeNode*)malloc(sizeof(struct TreeNode));ret->left=ret->right=NULL;ret->val=preorder[left1];int i=0;for(i=left2;i<=right2;i++)//在中序遍历数组中查询根节点索引{if(inorder[i]==preorder[left1])break;}ret->left=Creat(preorder,left1+1,left1+i-left2,inorder,left2,i-1);ret->right=Creat(preorder,left1+i-left2+1,right1,inorder,i+1,right2);return ret;}struct TreeNode* buildTree(int* preorder, int preorderSize, int* inorder, int inorderSize)
{struct TreeNode* head=(struct TreeNode*)malloc(sizeof(struct TreeNode));int left1=0;int right1=preorderSize-1;int left2=0;int right2=inorderSize-1;head=Creat(preorder,left1,right1,inorder,left2,right2);return head;
}
面试题7:重建二叉树相关推荐
- 剑指offer:面试题07. 重建二叉树
题目: 重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字. 例如,给出 前序遍历 preorder = [3,9,20,15,7 ...
- 剑指offer-面试题6.重建二叉树
题目:输入某二叉树的前序遍历和中序遍历结果,请重建出该二叉树.假设 输入的前序遍历和中序遍历的结果都不含重复的数字.例如输入前序遍历 序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2, ...
- 剑指offer面试题6 重建二叉树(java)
注:(1)java中树的构建 (2)构建子树时可以直接利用Arrays.copyOfRange(preorder, from, to),这个方法是左开右闭的 1 package com.xsf.Sor ...
- 剑指offer面试题[6]-重建二叉树
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7, ...
- 剑指offer_面试题6_重建二叉树(分解步骤,逐个击破)
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字. 例如:输入前序遍历 {1,2,4,7,3,5,6,8} 和中序遍历序列 {4,7 ...
- 剑指Offer - 面试题7. 重建二叉树(递归)
1. 题目 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字. 例如,给出前序遍历 preorder = [3,9,20,15,7] 中序遍 ...
- 【剑指offer】面试题07. 重建二叉树(Java)
输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字. 例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 ino ...
- 剑指offer面试题07. 重建二叉树(递归)(切片)
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字. 思路 详见链接 代码 #class TreeNode: # def __ini ...
- {面试题6: 重建二叉树}
From 剑指Offer 何海涛 著 #include <iostream> #include <exception> #include <string>struc ...
- 手把手教你如何重建二叉树(超精彩配图)
文章目录 一.二叉树的重建 (一)面试题07. 重建二叉树 (二)分析该题目 (三)java代码实现 (四)IDEA调试代码,详细查看构建的过程 (五)附Arrays.copyOfRange()的用法 ...
最新文章
- 泛型委托Funcstring,string()
- 智能车竞赛云上比赛第二天
- 湖南网络推广浅析外链怎么发才会更快的收录?
- oracle 服务名 数据库名 实例名
- linux下定时清理磁盘日志步骤
- MFC CListCtrl 取消选中
- python 数据科学 包_什么时候应该使用哪个Python数据科学软件包?
- Ubuntu部署Kibana和ElasticHD
- Android低功耗蓝牙通讯
- cdrom是什么意思_开启电脑时出现CDROM是什么意思
- setAttribute(Qt::WA_DeleteOnClose) 导致程序崩溃问题
- 用python对股票期货做时序分析
- 图解:什么是图?(以“图”话图)
- 微信小程序跳过第三方的_微信小程序可以跳转第三方页面吗
- 记录:谷歌地图google map api实现基本测距功能
- Docker配置Daocloud加速器
- 编程九十天之特别纪念篇
- arduino8266控制引脚
- C++游戏系列:目录
- Hello World,Again
热门文章
- 求绝对值 c鱼眼_初一上学期,绝对值的相关计算,提优篇
- cad图纸问号怎么转换文字_CAD打开图纸后字体显示为问号,这样解决治标治本(送)...
- SQLite | Where 子句
- 吴恩达机器学习笔记十四之大规模机器学习
- pandas学习笔记五之pandas合并
- 中国中医科学院院长黄璐琦发表2022年新春贺词
- 这篇文献总结了常见的中式英语写法,来看看有没有中枪?
- 关于PS插件Nik Collection不兼容cc2021闪退的解决方法
- 伸展树(Splay tree)图解与实现
- java绘制半透明图片_如何使绘制的图像在Java中透明