根据一棵树的前序遍历与中序遍历构造二叉树。注意:
你可以假设树中没有重复的元素。例如,给出前序遍历 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) {return build(preorder,0,preorder.length-1,inorder,0,inorder.length-1);}public TreeNode build(int[] preorder,int pl,int pr, int[] inorder,int il,int ir) {if(pl>pr||il>ir) return null;//递归边界int index=0;while (preorder[pl]!=inorder[il+index]) index++;//找出父节点在中序遍历的位置TreeNode temp=new TreeNode(preorder[pl]);temp.left=build(preorder, pl+1, pl+index, inorder, il, il+index-1);
//根据index和父节点将两个数组分成两半,递归寻找左右子树temp.right=build(preorder, pl+index+1, pr, inorder, il+index+1, ir);return temp;}
}

leetcode105. 从前序与中序遍历序列构造二叉树(递归)相关推荐

  1. leetcode105.从前序与中序遍历序列构造二叉树

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

  2. Leetcode--105. 从前序与中序遍历序列构造二叉树(Java)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. Exchange 2013sp1邮件系统部署-(七)
  2. MySQL8.0设置远程访问权限
  3. 【JulyEdu-Python基础】第 8 课:Python第三方库
  4. html写三角形,css3怎么写三角形?
  5. 用一年的时间,依靠SEO创造一个成功的网站
  6. maven安装教程安装教程_Maven教程之春
  7. 基于OpenCL的mean filter性能
  8. java ip输入框_JavaScript实现IP地址的输入框方式
  9. 华为ax3怎么接光纤sc接口_光纤收发器接口类型、连接、指示灯说明及故障症断...
  10. Vmware报错:此主机支持IntelVTx 但IntelVTx处于禁用状态
  11. BootDO框架的使用及介绍
  12. 简历中的“项目经验”该怎么写?
  13. java 计算2的64次幂_2的64次方
  14. 解决:ORA-06502: PL/SQL: numeric or value error: NULL index table key value
  15. matlab2014如何获得hostid,hostid.c/获取主机标识
  16. nginx关闭请求处理ngx_http_finalize_request源码分析
  17. RGB 565格式的256色颜色表代码表
  18. yarn : 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁止运行脚本。
  19. 内存和CPU匹配方法详解
  20. 全员“拉踩”苹果,入局一年多的苹果芯片已成“行业标杆”?

热门文章

  1. 成功跳槽百度工资从15K涨到28K,威力加强版
  2. SQL求一个表中非重复数据及其出现的次数
  3. (转)Java中的守护线程
  4. 667. Beautiful Arrangement II
  5. BZOJ 1270: [BeijingWc2008]雷涛的小猫( dp )
  6. P2P原理及UDP穿透简单说明
  7. 机器学习模型中step与epoch,batch_size之间的关系
  8. 雷军宣布红米 Redmi 品牌独立,这对小米意味着什么?
  9. ubuntu 16.04 安装mysql
  10. linux下配置SS5(SOCK5)代理服务