剑指offer 04:重构二叉树
题目描述
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{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:重构二叉树相关推荐
- 剑指Offer #04 重建二叉树(递归)
题目来源:牛客网-剑指Offer专题 题目地址:重建二叉树 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序 ...
- 【LeetCode】剑指 Offer 37. 序列化二叉树
[LeetCode]剑指 Offer 37. 序列化二叉树 文章目录 [LeetCode]剑指 Offer 37. 序列化二叉树 package offer;import java.util.Link ...
- 【LeetCode】剑指 Offer 07. 重建二叉树
[LeetCode]剑指 Offer 07. 重建二叉树 文章目录 [LeetCode]剑指 Offer 07. 重建二叉树 package offer;import java.util.ArrayD ...
- 【LeetCode】剑指 Offer 04. 二维数组中的查找
[LeetCode]剑指 Offer 04. 二维数组中的查找 文章目录 [LeetCode]剑指 Offer 04. 二维数组中的查找 package offer;public class Solu ...
- 【LeetCode】剑指 Offer 68 - II. 二叉树的最近公共祖先
[LeetCode]剑指 Offer 68 - II. 二叉树的最近公共祖先 文章目录 [LeetCode]剑指 Offer 68 - II. 二叉树的最近公共祖先 一.DFS 一.DFS 祖先的定义 ...
- 【LeetCode】剑指 Offer 55 - I. 二叉树的深度
[LeetCode]剑指 Offer 55 - I. 二叉树的深度 文章目录 [LeetCode]剑指 Offer 55 - I. 二叉树的深度 一.后序遍历(DFS) 二.层序遍历 一.后序遍历(D ...
- 利用指针数组计算2个3行4列矩阵的和_[剑指 Offer] 04. 二维数组中的查找
难度:简单 题目链接:剑指 Offer 04. 二维数组中的查找 题目描述: 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数, ...
- 剑指 Offer II 044. 二叉树每层的最大值
链接:剑指 Offer II 044. 二叉树每层的最大值 题解: /*** Definition for a binary tree node.* struct TreeNode {* int va ...
- 剑指 Offer 04. 二维数组中的查找
剑指 Offer 04. 二维数组中的查找 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个高效的函数,输入这样的一个二维数组和一个 ...
- 剑指 Offer II 047. 二叉树剪枝
剑指 Offer II 047. 二叉树剪枝: 题目链接 :剑指 Offer II 047. 二叉树剪枝 题目: 给定一个二叉树 根节点 root ,树的每个节点的值要么是 0,要么是 1.请剪除该二 ...
最新文章
- 在微信小程序的JS脚本中使用Promise来优化函数处理
- Nodejs 环境配置终极解决方案
- 系统设计经典题:手把手教你搭建一个IM(即时通讯) 系统
- linux 网卡 开启dhcp,Linux DHCP如何绑定指定的网卡???
- 原则,策略,规范也是构架的一部分
- 如何用php编写注册表格,发布PHP-MySQL注册表格
- Docker学习(三):镜像
- 基于django rest framework的mock server实践
- php接收get参数false是字符串,php解析url (parse_url) 参数成数组 (parse_str)
- sql in里面可以放多少参数_如何从文本文件读入 SQL 参数
- 近300个 Windows 10 可执行文件易受 DLL 劫持攻击
- ORM框架之Mybatis(二)数据库连接池、事务及动态SQL
- hadoop 笔记(hive)
- C#实现图片转字符画
- Python实现isPrime函数----新手
- 文氏图解析SQL语句中JOIN操作
- python使用文字识别读取图片文字
- 虾神的csdn技术博客
- 马里奥(附代码windows)
- 安装算量软件快速计算管道管件功能
热门文章
- java编程那些事pdf下载_《Java编程那点事儿》读书笔记(六)
- 管理系统中计算机应用知识总结,自考《管理系统中计算机应用》章节知识点复习:管理信息...
- lnmp 切换mysql 版本_LNMP1.5:php多版本切换
- 【深度学习】解析深度学习的集成方法
- python【力扣LeetCode算法题库】9- 回文数
- java集群调度_Cuckoo-Schedule
- 小程序的前端坑(持续更新)
- 有关mysql事务冲突
- 网络营销外包——网络营销外包专员如何做好网站锚文本优化?
- 网站SEO优化如何讨好搜索引擎蜘蛛?