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

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

例如,给出

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

3
   / \
  9  20
    /  \
   15   7

思路:

1、前序序列第一个是根

2、根据根在中序序列中找到

3、对左右子树做同样的操作(操作返回的结果就是根的左右孩子)

/*** 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)return null;     TreeNode root = new TreeNode(preorder[0]);int num=0;for(int i =0; i<inorder.length; i++){if(inorder[i]==root.val){num=i;break;}}int[] preLeft = Arrays.copyOfRange(preorder,1,num+1);int[] preRight = Arrays.copyOfRange(preorder,num+1,preorder.length);  int[] inoLeft = Arrays.copyOfRange(inorder,0,num);int[] inoRight = Arrays.copyOfRange(inorder,num+1,inorder.length);root.left=buildTree(preLeft,inoLeft);root.right=buildTree(preRight,inoRight);return root;}
}

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

  1. 72.编辑距离105.前序中序遍历序列构造二叉树151.翻转字符串里的单词104.二叉树的最大深度76.最小覆盖子串110.平衡二叉树31.下一个排列

    72.编辑距离 给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 .你可以对一个单词进行如下三种操作:插入一个字符,删除一个字符,替换一个字符. ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  9. 由序列确定二叉树:前序序列和中序序列构造二叉树 后序序列和中序序列构造二叉树 层次遍历序列和中序遍历序列构造二叉树 代码实现(c语言)

    下面三种序列可以唯一的构造唯一的一棵二叉树: 前序序列和中序序列构造二叉树 后序序列和中序序列构造二叉树 层次遍历序列和中序遍历序列构造二叉树 #include<stdio.h> #inc ...

最新文章

  1. 自定义控件:下拉刷新
  2. vscode多个光标_21 个VSCode 快捷键,让代码更快,更有趣
  3. html5爱情树怎么修改,jQuery结合HTML5制作的爱心树表白动画
  4. Java怎么不启动_dubbo不启动了怎么回事???一模一样的另一个没问题
  5. 软件集成策略故事连载----集成这破活儿
  6. Micmac摄影测量软件介绍
  7. Redis(RedisTemplate)使用hash哈希
  8. 用OpenStack构建“区域医疗”云平台
  9. 常用软件版本号及软件安装包格式
  10. 韩立刚计算机网络笔记-第01章 计算机网络详解
  11. pre-trained模型的使用
  12. 中国这10家慕课网站,您需要知道
  13. 2021年施工员-装饰方向-岗位技能(施工员)免费试题及施工员-装饰方向-岗位技能(施工员)复审考试
  14. 加速编码的17款最棒的CSS工具
  15. iOS开发 info.plist设置app启动页面
  16. Mysql实现排名及指定内容查询排名
  17. WebSocket(二) -- 使用原生webSocket实现一个简单的聊天
  18. UML的九种图+包图
  19. JSR 310日期时间API
  20. C++11 FAQ中文版

热门文章

  1. 基于SIP协议的视频通讯
  2. cs架构用什么语言开发_用Rust语言开发微信小程序
  3. SpringMVC遇到的问题——GET http://localhost/spring_mvc_war_exploded/js/jquery-3.3.1.js net::ERR_ABORTED 404
  4. 扫描路径_npj: 纳米团簇表面的自动扫描—吸附位点和扩散路径
  5. ROS launch文档介绍
  6. oracle insert 当前时间_Oracle知识点总结
  7. 【JS 逆向百例】网洛者反爬练习平台第四题:JSFuck 加密
  8. 【HDU - 4786 】Fibonacci Tree (最小生成树变形,上下界贪心,tricks)
  9. 【ZOJ - 3946】Highway Project(最短路子图,维护双权值,贪心,最小树形图)
  10. 可以使用田忌赛马类贪心问题的前提(或说 如何判断题目符合田忌赛马类贪心问题)