package leetcode;/*** projectName: study000* time: 2020/12/18 22:04* description:前中序构建二叉树*/
public class ti_105 {// 递归法/*** @param preorder 先序遍历数组* @param inorder 中序遍历数组* @return 数组根节点*/public TreeNode buildTree(int[] preorder, int[] inorder) {return buildTreeHelper(preorder,inorder, 0,preorder.length,0,inorder.length);}public TreeNode buildTreeHelper(int[] preorder, int[] inorder,int preLeft,int preRight,int inLeft,int inRight){// 先序遍历的个数为0的时候,递归结束.if (preLeft == preRight){return null;}// 先序遍历的值,第一个必须是根节点int rootVal = preorder[preLeft];// 构建根节点TreeNode root = new TreeNode(rootVal);// 从中序遍历中获取根节点// 根节点左侧为左子树,右侧为右子树int i = inLeft;for (; i < inRight; i++) {if (inorder[i] == rootVal){break;}}// 获取左子树的个数int high = i - inLeft;// 递归构建左右子树root.left = buildTreeHelper(preorder,inorder,preLeft + 1,preLeft + high + 1,inLeft,i);root.right = buildTreeHelper(preorder,inorder,preLeft + high + 1,preRight,i + 1,inRight);return root;}
}

力扣105 先序和中序遍历数组构建二叉树相关推荐

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

    我是清都山水郎,天教懒慢带疏狂.曾批给露支风券,累奏流云借月章. 诗万首,酒千觞,几曾着眼看侯王.玉楼金阙慵归去,且插梅花醉洛阳.  --朱敦儒 <鹧鸪天> 根据一棵树的前序遍历与中序遍历 ...

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

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

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

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

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

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

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

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

  6. java二叉树合并_Java(树的前中后序遍历构造二叉树题型整合)前序和中序、中序和后序、前序和后序遍历序列构造二叉树算法整合归纳...

    前言 二叉树各种花里胡哨的算法题真的把我搞晕了,今天特地整理出一类有关二叉树的算法题,希望能帮助阅读到此文章的人,今后不再受此类题型的困扰. 一.题目类型 已知二叉树的两种遍历序列,请根据该序列构建二 ...

  7. 力扣105和106题

    从前序与中序遍历中构造二叉树:从中序与后序遍历构造二叉树(力扣105和106) 模仿官方105答案,写出106题 //105题(官方) class Solution {public TreeNode ...

  8. 通过前序中序,中序后序,前序后序来构造一二叉树

    前序中序,以及中序后序可以确定唯一一颗二叉树,而前序后续是可以有多种情况,因为仅仅前序后续是无法确定根节点左右子树的问题: 首先解决通过前序和中序来构建一颗二叉树的问题: 前序=根节点+左子树+右子树 ...

  9. 《LeetCode力扣练习》第448题 找到所有数组中消失的数字 Java

    <LeetCode力扣练习>第448题 找到所有数组中消失的数字 Java 一.资源 题目: 给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内.请你 ...

最新文章

  1. burpsuit学习--修改来源地址
  2. 《Deep Learning With Python second edition》英文版读书笔记:第十一章DL for text: NLP、Transformer、Seq2Seq
  3. java高并发(六)线程安全性
  4. 中立安全、赋能产业,UCloud优刻得凭差异化路线进军产业互联
  5. python中调用是什么意思_在Python中调用函数的含义?
  6. java重命名excel_Java重命名Excel工作表并设置工作表及标签颜色
  7. 使用derby导入mongodb数据
  8. 流行趋势:大背景图片在网页设计的20个精彩应用
  9. java实现活动安排问题_贪心算法-活动安排问题
  10. Qt之Dialog\widget\ mainwindow的区别和布局管理器 分裂器的区别
  11. caffe教程 (2)
  12. 关于layui分页组件layPage如何动态调整页数的使用
  13. 分布式和集中式版本控制工具-svn,git,mercurial比较分析
  14. 日记侠:如何用手机月入万元,只需从这5步开始
  15. 多项式的 加法 与 乘法(C语言 单链表)
  16. 刷题——Python篇(2)类型转换
  17. MySQL的utf8与utf8mb4编码,以及utf8_bin、utf8_general_ci编码区别
  18. fence_ipmilan 的一个缺陷
  19. CH340-为什么需要安装驱动?
  20. 如何用蓝牙实现无线定位(二)--信号塔设置

热门文章

  1. C++——vector的模拟实现
  2. Mybatis 拦截器原理
  3. 油田信息化:通往智慧之路(1.3-智慧油田在全球的实践)
  4. 西班牙著名品牌“ZARA”演绎供应链极速传说
  5. C语言赋值运算符和赋值表达式
  6. linux wstring,wstring 与string转换 ,函数setlocale用法疑问
  7. 【C语言函数3.2】写一个函数,实现一个整形有序数组的二分查找代码
  8. 英语中做表语的词性有哪些
  9. [玩转C语言]---函数的递归
  10. Django中不携带token导致csrf验证失败解决方法