链接

这里是引用

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:重建二叉树相关推荐

  1. 剑指offer:面试题07. 重建二叉树

    题目: 重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字. 例如,给出 前序遍历 preorder = [3,9,20,15,7 ...

  2. 剑指offer-面试题6.重建二叉树

    题目:输入某二叉树的前序遍历和中序遍历结果,请重建出该二叉树.假设 输入的前序遍历和中序遍历的结果都不含重复的数字.例如输入前序遍历 序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2, ...

  3. 剑指offer面试题6 重建二叉树(java)

    注:(1)java中树的构建 (2)构建子树时可以直接利用Arrays.copyOfRange(preorder, from, to),这个方法是左开右闭的 1 package com.xsf.Sor ...

  4. 剑指offer面试题[6]-重建二叉树

    题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7, ...

  5. 剑指offer_面试题6_重建二叉树(分解步骤,逐个击破)

    题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字. 例如:输入前序遍历 {1,2,4,7,3,5,6,8} 和中序遍历序列 {4,7 ...

  6. 剑指Offer - 面试题7. 重建二叉树(递归)

    1. 题目 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字. 例如,给出前序遍历 preorder = [3,9,20,15,7] 中序遍 ...

  7. 【剑指offer】面试题07. 重建二叉树(Java)

    输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字. 例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 ino ...

  8. 剑指offer面试题07. 重建二叉树(递归)(切片)

    题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字. 思路 详见链接 代码 #class TreeNode: # def __ini ...

  9. {面试题6: 重建二叉树}

    From 剑指Offer 何海涛 著 #include <iostream> #include <exception> #include <string>struc ...

  10. 手把手教你如何重建二叉树(超精彩配图)

    文章目录 一.二叉树的重建 (一)面试题07. 重建二叉树 (二)分析该题目 (三)java代码实现 (四)IDEA调试代码,详细查看构建的过程 (五)附Arrays.copyOfRange()的用法 ...

最新文章

  1. 泛型委托Funcstring,string()
  2. 智能车竞赛云上比赛第二天
  3. 湖南网络推广浅析外链怎么发才会更快的收录?
  4. oracle 服务名 数据库名 实例名
  5. linux下定时清理磁盘日志步骤
  6. MFC CListCtrl 取消选中
  7. python 数据科学 包_什么时候应该使用哪个Python数据科学软件包?
  8. Ubuntu部署Kibana和ElasticHD
  9. Android低功耗蓝牙通讯
  10. cdrom是什么意思_开启电脑时出现CDROM是什么意思
  11. setAttribute(Qt::WA_DeleteOnClose) 导致程序崩溃问题
  12. 用python对股票期货做时序分析
  13. 图解:什么是图?(以“图”话图)
  14. 微信小程序跳过第三方的_微信小程序可以跳转第三方页面吗
  15. 记录:谷歌地图google map api实现基本测距功能
  16. Docker配置Daocloud加速器
  17. 编程九十天之特别纪念篇
  18. arduino8266控制引脚
  19. C++游戏系列:目录
  20. Hello World,Again

热门文章

  1. 求绝对值 c鱼眼_初一上学期,绝对值的相关计算,提优篇
  2. cad图纸问号怎么转换文字_CAD打开图纸后字体显示为问号,这样解决治标治本(送)...
  3. SQLite | Where 子句
  4. 吴恩达机器学习笔记十四之大规模机器学习
  5. pandas学习笔记五之pandas合并
  6. 中国中医科学院院长黄璐琦发表2022年新春贺词
  7. 这篇文献总结了常见的中式英语写法,来看看有没有中枪?
  8. 关于PS插件Nik Collection不兼容cc2021闪退的解决方法
  9. 伸展树(Splay tree)图解与实现
  10. java绘制半透明图片_如何使绘制的图像在Java中透明