前序遍历

前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。
前序遍历有个特点

  • 节点的分布总是按照根节点 左子树节点 右子树节点 依次排列。

中序遍历

中序遍历首先遍历左子树,再访问根节点,最后遍历右子树。
中序遍历有个特点

  • 根节点的左侧是左子树节点,右侧是右子树节点

依靠前序遍历和中序遍历的特点构建二叉树

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

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

例如,给出

前序遍历 preorder = [3,9,20,15,7]
中序遍历 inorder = [9,3,15,20,7]
返回如下的二叉树:

3
/ \
9 20
/ \
15 7

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
class Solution {public TreeNode buildTree(int[] preorder, int[] inorder) {if(preorder.length==0 || inorder.length==0) return null;TreeNode root=new TreeNode(preorder[0]);for(int i=0;i<preorder.length;i++){if(preorder[0]==inorder[i]){root.left=buildTree(Arrays.copyOfRange(preorder,1,i+1),Arrays.copyOfRange(inorder,0,i));root.right=buildTree(Arrays.copyOfRange(preorder,i+1,preorder.length),Arrays.copyOfRange(inorder,i+1,inorder.length));break;}}return root;}
}

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

  1. 【LeetCode系列】从中序与后序遍历序列构造二叉树 从前序与中序遍历序列构造二叉树...

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 105. 从前序与中序遍历序列构造二叉树 根据一棵树的前序遍历与中序遍历构造二叉树 ...

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

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

  3. [Leedcode][JAVA][第105题][从前序与中序遍历序列构造二叉树][栈][递归][二叉树]

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

  4. 二叉树 中序遍历 python_LeetCode 105 树 从前序与中序遍历序列构造二叉树(Medium)

    17(105) 从前序与中序遍历序列构造二叉树(Medium) 描述 根据一棵树的前序遍历与中序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素. 示例 例如,给出前序遍历 preorder = ...

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

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

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

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

  7. 找树左下角的值+路径总和+从前序和中序遍历序列构造二叉树(day18*)

    这篇可以主要关注一下如何确定递归时是否需要返回值. LC513. 找树左下角的值 给定一个二叉树的根节点,请找出该二叉树的 最底层最左边 节点的值. 思路1 层序遍历 class Solution:d ...

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

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

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

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

  10. 刷题记录8---验证二叉搜索树+二叉树的层序遍历+从前序与中序遍历序列构造二叉树+二叉树展开为链表+二叉树的最近公共祖先

    前言 所有题目均来自力扣题库中的hot 100,之所以要记录在这里,只是方便后续复习 98.验证二叉搜索树 题目: 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树. 有效 二叉搜 ...

最新文章

  1. dnf时装预览怎么打开_您看我还有机会吗?被阉割的DNF时装市场系统
  2. 在虚拟机环境下,电脑间拷贝配置好的伪分布式Hadoop环境,出现namenode不能启动的问题!...
  3. oracle服务器错误,oracle 11g数据库维护中错误总结
  4. 获取ArcGIS安装路径
  5. C#LeetCode刷题之#824-山羊拉丁文​​​​​​​(Goat Latin)
  6. 内存分配器ptmalloc,jemalloc,tcmalloc调研与对比
  7. (转)(VS2013 )由于应用程序配置不正确,程序未能启动”--原因及解决方法...
  8. c++用两个队列实现一个栈
  9. Oracle10G各版本下载
  10. 泛微协同办公系统移动服务器,泛微协同办公平台Ecology系统重装迁移指导手册.pdf...
  11. 怎么获取股票大数据接口的方法介绍
  12. 加载脚本依赖发生错误--暴力猴
  13. php+ioncube',windows下php安装ionCube
  14. 读侯世达之《哥德尔、艾舍尔、巴赫:集异壁之大成》
  15. 摩尔庄园怎么显示全部服务器,摩尔庄园手游服务器查看区别方法
  16. GC.SuppressFinalize()的正确用法
  17. C语言后缀.h文件和.c文件作用和区别
  18. 软件构件 API 在不同版本间的兼容性——读FSE 2012 best paper有感
  19. 5000词学英语——DAY1
  20. 写给想成为前端工程师的同学们

热门文章

  1. Angular v6 正式发布
  2. shell脚本:批量修改文件名(文件名中添加字符)
  3. Jquery简单的右侧浮动菜单
  4. 《驯狮记——Mac OS X 10.8 Mountain Lion使用手册》——2.3 Dock
  5. django 1.8 官方文档翻译:2-1-1 模型语法
  6. Log4cpp 使用手册
  7. 混乱开发,既伤身体又伤感情
  8. 网络营销第四课:网络营销需要掌握的网页代码(2)
  9. system函数_自学C++基础教程【函数】
  10. python可变参数函数二阶导数公式_Python中函数的参数定义和可变参数