题目描述

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

/*** Definition for binary tree* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
public class Solution {public TreeNode reConstructBinaryTree(int[] pre, int[] in) {if(pre.length == 0 ||in.length == 0)return null;return ConstructBinaryTree(pre, 0, pre.length-1, in, 0, in.length - 1);}public TreeNode ConstructBinaryTree(int[] pre, int pstart, int pend, int[] in, int istart, int iend){if(pstart > pend || istart > iend)return null;TreeNode root = new TreeNode(pre[pstart]);for(int i = istart; i <= iend; i++){if(in[i] == pre[pstart]){root.left = ConstructBinaryTree(pre, pstart+1, pstart + i - istart, in, istart, i - 1);root.right = ConstructBinaryTree(pre, pstart + i - istart + 1, pend, in, i + 1, iend);break;}}return root;}
}

转载于:https://www.cnblogs.com/MiaoPlus/p/10725290.html

剑指offer 04:重构二叉树相关推荐

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

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

  2. 【LeetCode】剑指 Offer 37. 序列化二叉树

    [LeetCode]剑指 Offer 37. 序列化二叉树 文章目录 [LeetCode]剑指 Offer 37. 序列化二叉树 package offer;import java.util.Link ...

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

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

  4. 【LeetCode】剑指 Offer 04. 二维数组中的查找

    [LeetCode]剑指 Offer 04. 二维数组中的查找 文章目录 [LeetCode]剑指 Offer 04. 二维数组中的查找 package offer;public class Solu ...

  5. 【LeetCode】剑指 Offer 68 - II. 二叉树的最近公共祖先

    [LeetCode]剑指 Offer 68 - II. 二叉树的最近公共祖先 文章目录 [LeetCode]剑指 Offer 68 - II. 二叉树的最近公共祖先 一.DFS 一.DFS 祖先的定义 ...

  6. 【LeetCode】剑指 Offer 55 - I. 二叉树的深度

    [LeetCode]剑指 Offer 55 - I. 二叉树的深度 文章目录 [LeetCode]剑指 Offer 55 - I. 二叉树的深度 一.后序遍历(DFS) 二.层序遍历 一.后序遍历(D ...

  7. 利用指针数组计算2个3行4列矩阵的和_[剑指 Offer] 04. 二维数组中的查找

    难度:简单 题目链接:剑指 Offer 04. 二维数组中的查找 题目描述: 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数, ...

  8. 剑指 Offer II 044. 二叉树每层的最大值

    链接:剑指 Offer II 044. 二叉树每层的最大值 题解: /*** Definition for a binary tree node.* struct TreeNode {* int va ...

  9. 剑指 Offer 04. 二维数组中的查找

    剑指 Offer 04. 二维数组中的查找 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个高效的函数,输入这样的一个二维数组和一个 ...

  10. 剑指 Offer II 047. 二叉树剪枝

    剑指 Offer II 047. 二叉树剪枝: 题目链接 :剑指 Offer II 047. 二叉树剪枝 题目: 给定一个二叉树 根节点 root ,树的每个节点的值要么是 0,要么是 1.请剪除该二 ...

最新文章

  1. 在微信小程序的JS脚本中使用Promise来优化函数处理
  2. Nodejs 环境配置终极解决方案
  3. 系统设计经典题:手把手教你搭建一个IM(即时通讯) 系统
  4. linux 网卡 开启dhcp,Linux DHCP如何绑定指定的网卡???
  5. 原则,策略,规范也是构架的一部分
  6. 如何用php编写注册表格,发布PHP-MySQL注册表格
  7. Docker学习(三):镜像
  8. 基于django rest framework的mock server实践
  9. php接收get参数false是字符串,php解析url (parse_url) 参数成数组 (parse_str)
  10. sql in里面可以放多少参数_如何从文本文件读入 SQL 参数
  11. 近300个 Windows 10 可执行文件易受 DLL 劫持攻击
  12. ORM框架之Mybatis(二)数据库连接池、事务及动态SQL
  13. hadoop 笔记(hive)
  14. C#实现图片转字符画
  15. Python实现isPrime函数----新手
  16. 文氏图解析SQL语句中JOIN操作
  17. python使用文字识别读取图片文字
  18. 虾神的csdn技术博客
  19. 马里奥(附代码windows)
  20. 安装算量软件快速计算管道管件功能

热门文章

  1. java编程那些事pdf下载_《Java编程那点事儿》读书笔记(六)
  2. 管理系统中计算机应用知识总结,自考《管理系统中计算机应用》章节知识点复习:管理信息...
  3. lnmp 切换mysql 版本_LNMP1.5:php多版本切换
  4. 【深度学习】解析深度学习的集成方法
  5. python【力扣LeetCode算法题库】9- 回文数
  6. java集群调度_Cuckoo-Schedule
  7. 小程序的前端坑(持续更新)
  8. 有关mysql事务冲突
  9. 网络营销外包——网络营销外包专员如何做好网站锚文本优化?
  10. 网站SEO优化如何讨好搜索引擎蜘蛛?