题目:

输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。

假设输入的前序遍历和中序遍历的结果中都不含重复的数字。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/zhong-jian-er-cha-shu-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题过程①:

递归
思路来源于LeetCode用户:Ant

/*** 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) {int n = preorder.length;if(n==0) return null;int rootVal = preorder[0], rootIndex = 0;for(int i=0;i<n;i++){if(inorder[i]==rootVal){rootIndex=i;        // 找根节点在中序遍历中的索引break;}              }TreeNode root = new TreeNode(rootVal);root.left = buildTree(Arrays.copyOfRange(preorder, 1, 1+rootIndex), Arrays.copyOfRange(inorder, 0, rootIndex));root.right = buildTree(Arrays.copyOfRange(preorder,1+rootIndex, n), Arrays.copyOfRange(inorder, 1+rootIndex,n));return root;}
}

执行结果①:

解题过程②:

尚待完善

执行结果②:

【※ LeetCode 剑指 Offer 07. 重建二叉树(中等)】尚待完善相关推荐

  1. 【LeetCode】剑指 Offer 07. 重建二叉树

    [LeetCode]剑指 Offer 07. 重建二叉树 文章目录 [LeetCode]剑指 Offer 07. 重建二叉树 package offer;import java.util.ArrayD ...

  2. 剑指 Offer 07. 重建二叉树【千字分析,三种方法】

    立志用最少的代码做最高效的表达 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字. 例如,给出 前序遍历 preorder = [3,9,2 ...

  3. 剑指offer 07重建二叉树(根据前序、中序遍历)草真tm难

    /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode ...

  4. 剑指 Offer 07. 重建二叉树

    ⭐简单说两句⭐ CSDN个人主页:后端小知识

  5. 剑指Offer #04 重建二叉树(递归)

    题目来源:牛客网-剑指Offer专题 题目地址:重建二叉树 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序 ...

  6. [剑指offer]8.重建二叉树

    题目 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2, ...

  7. 剑指Offer系列 重建二叉树

    题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树. 假设输入的前序遍历和中序遍历的结果中都不含重复的数字. 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7, ...

  8. 剑指offer之重建二叉树

    1 问题 重建二叉树:给定二叉树的先序遍历(根左右)和中序(左中右)遍历结果,建立这棵二叉树.输入保证二叉树无重复结点 以先序{1, 2, 4, 7, 3, 5, 6, 8}和中序{4, 7, 2, ...

  9. 剑指offer——7.重建二叉树

    题目: 题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4, ...

最新文章

  1. 最新机器学习开源项目Top10
  2. oracle判断数据表的字段内容是否为空
  3. Android Shell命令dumpsys
  4. python2048小游戏程序设计大作业_C语言大作业报告——2048小游戏程序
  5. linux逻辑或的用法,第三课 Linux逻辑运算符
  6. 入门 Angular 2 杂记
  7. 【TWVRP】基于matlab蚁群算法求解带时间窗的多中心车辆路径规划问题【含Matlab源码 112期】
  8. 如何解决时间在前端显示的问题,使用jsel解决,仅供初步接触servlet新手
  9. Delphi2007下cxComboBox乱码.
  10. SQL 后计算的利器 SPL
  11. 方正飞翔加密锁_方正飞翔6.0数字版注册机
  12. odoo15 po文件自动翻译器
  13. 发电子邮件怎么发,手机发电子邮件教程来了
  14. stm32复位引脚NRST
  15. 单摆测重力加速度的算法(Python)
  16. QT-ico图片的生成
  17. js几种escape()解码与unescape()编码
  18. 三.Oracle常用数据类型及单行函数总结
  19. Matlab 字符串时间戳转化为数值(以秒或毫秒为单位)
  20. linux中jdk添加字体_在Linux上为Openjdk Java定义/安装字体的位置

热门文章

  1. WordPress自动采集发布文章01-使用火车头采集目标网站
  2. matlab悬置非线性位移计算公式,动力总成悬置系统运动包络及工况载荷计算方法...
  3. VS Code运行C++程序的配置过程
  4. 单元测试日期使用ibatis将数据库从oracle迁移到mysql的几个修改点
  5. python3中 os.path.realpath(__file__) 的使用
  6. C#:Krypton控件使用方法详解(第九讲) ——kryptonRadioButton
  7. Android 实现一键反混淆功能
  8. C++读写CSV文件
  9. 深入探究Qt HTTP的内部构架
  10. 校验手机号码和固定电话的正则