题目描述:

根据一棵树的前序遍历与中序遍历构造二叉树。

注意:
你可以假设树中没有重复的元素。

例如,给出

前序遍历 preorder = [3,9,20,15,7]
中序遍历 inorder = [9,3,15,20,7]

返回如下的二叉树:

   3/ \9  20/  \15   7

思路分析:

废话不多说,直接来想思路,首先思考,根节点应该做什么。

类似上一题,我们肯定要想办法确定根节点的值,把根节点做出来,然后递归构造左右子树即可。(都是套路)

具体思路可参照公众号文章https://mp.weixin.qq.com/s/OlpaDhPDTJlQ5MJ8tsARlA

class Solution {public TreeNode buildTree(int[] preorder, int[] inorder) {return build(preorder,0,preorder.length-1,inorder,0,inorder.length-1);}TreeNode build(int[] preorder,int prestart,int preend,int[] inorder,int instart,int inend){if(prestart>preend){return null;}int rootVal=preorder[prestart];int index=0;for(int i=instart;i<=inend;i++){if(inorder[i]==rootVal){index=i;break;}}int leftsize=index-instart;TreeNode root=new TreeNode(rootVal);root.left=build(preorder,prestart+1,prestart+leftsize,inorder,instart,index-1);root.right=build(preorder,prestart+leftsize+1,preend,inorder,index+1,inend);return root;}
}

LeetCode-105:从前序与中序遍历序列构造二叉树相关推荐

  1. leetcode 105. 从前序与中序遍历序列构造二叉树 c语言递归解法

    如题: 根据一棵树的前序遍历与中序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素.例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3 ...

  2. leetcode 105. 从前序与中序遍历序列构造二叉树

    难度:中等 频次:68 题目: 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点 ...

  3. Leetcode 105. 从前序与中序遍历序列构造二叉树 解题思路及C++实现

    解题思路: 前序遍历preorder中,第一个即为根节点,然后找到中序遍历inorder中对应的节点,则inorder中该节点之前的值均在根节点的左子树上,该节点后面的值都在根节点的右子树上,所以可以 ...

  4. 50. Leetcode 105. 从前序与中序遍历序列构造二叉树 (二叉树-二叉树构建)

    给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点.示例 1:输入: preord ...

  5. LeetCode 105. 从前序与中序遍历序列构造二叉树(递归)

    题目描述 根据一棵树的前序遍历与中序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素. 思路 详见链接 代码 #class TreeNode: # def __init__(self,x): # ...

  6. 【LeetCode】【HOT】105. 从前序与中序遍历序列构造二叉树(哈希表+递归)

    [LeetCode][HOT]105. 从前序与中序遍历序列构造二叉树 文章目录 [LeetCode][HOT]105. 从前序与中序遍历序列构造二叉树 package hot;import java ...

  7. LeetCode 刷题之旅(2020.05.22)——105. 从前序与中序遍历序列构造二叉树(中)

    LeetCode 刷题之旅(2020.05.22)--105. 从前序与中序遍历序列构造二叉树(中) 题目: 根据一棵树的前序遍历与中序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素. 例如, ...

  8. 105从前序与中序遍历序列构造二叉树 106 从中序与后序遍历序列构造二叉树 (递归 + 哈希)

    引言 这两道题主要是考察二叉树遍历的掌握,即由前序和中序推出原二叉树,由后序和中序推出原二叉树,这里先来说一下推导过程: 前序和中序 知道前序遍历和中序遍历,如何推原二叉树?(直接是结论,可以自行推导 ...

  9. 【必拿下系列】106. 从中序与后序遍历序列构造二叉树105从前序与中序遍历序列构造二叉树

    两题各自的链接放这里了: 链接: 106 链接: 105 106.从中序与后序遍历序列构造二叉树 如果你是不知道理论的,那就得仔细分析了, 举个例子: 输入:inorder = [9,3,15,20, ...

  10. 二叉树 中序遍历 python_leetcode No.105 从前序与中序遍历序列构造二叉树

    题目链接: 从前序与中序遍历序列构造二叉树 - 力扣(LeetCode)​leetcode-cn.com 题目描述: 根据一棵树的前序遍历与中序遍历构造二叉树,可以假设树中没有重复的元素. 示例: 前 ...

最新文章

  1. keepalive的 nopreempt 非抢占
  2. 【面向对象】基本概念
  3. 年薪40W,如何高效准备大厂AI算法岗面试?
  4. maven 集成 CXF
  5. 【ElasticSearch】Es 源码之 IndicesModule 源码解读
  6. oracle数据库存储管理总结,oracle数据库存储管理
  7. java之设计模式工厂三兄弟之简单工厂模式
  8. 用Elasticsearch构建电商搜索平台,一个极有代表性的基础技术架构和算法实践案例...
  9. Struts中提示Invalid result location value/parameter
  10. 【Gym - 101848B】Almost AP【等差数列改三个数】
  11. 思维导图的使用场合有哪些?怎么画思维导图
  12. win8更改计算机锁屏时间,win8如何设置电脑屏保时间设置方法
  13. 【矩阵乘法】矩阵求和
  14. 如何在esxi环境安装硬件VIB驱动。
  15. xcpc近年铜牌题补题路
  16. KITTI数据集--参数
  17. (三)mmclassification图像分类——模型训练
  18. Android 接入VK登录
  19. 测试地图最短路径搜索(二):换个稍微复杂点的路径模板
  20. Java中final、finally、finalize的简单区别,中等区别,详细区别(Lawliet 修改+注释版)

热门文章

  1. 第六章 图像识别与卷积神经网络
  2. PHP快速获取MySQL数据库表结构
  3. css样式 浏览器的读取顺序
  4. Linux  释放Linux 系统预留的硬盘空间
  5. 面向对象与原型(二)
  6. 建议理解泛型集合-来源于QQ群
  7. overflow encountered in ubyte_scalars像素加减运算溢出异常
  8. PAT乙级(1026 程序运行时间)
  9. 华为云苏光牛:生态建设是数据库产业发展非常重要的一环
  10. 案例精解:insert逻辑读暴增至20万,只因Oracle Recyclebin过大