二叉树天然的递归特性,使得我们可以使用递归算法对二叉树进行遍历和重建。之前已经写过LeetCode二叉树的前序、中序、后序遍历(递归实现),那么本文将进行二叉树的重建,经过对比,会发现二者有着许多相似之处。

准备工作

二叉树节点定义:

//Definition for a binary tree node.
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}

需要用到数组部分复制的API:

aaarticlea/png;base64,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" alt="" />

LeetCode题解

LeetCode上面关于二叉树重建的问题有:

#
Title
105
106
889
 

105. Construct Binary Tree from Preorder and Inorder Traversal

Given preorder and inorder traversal of a tree, construct the binary tree.

class Solution {
public TreeNode buildTree(int[] pre, int[] in) {
if (pre.length == 0) {
return null;
}
System.out.println(pre[0]);
TreeNode res = new TreeNode(pre[0]);
int index = getIndex(in, pre[0]);
res.left = buildTree(Arrays.copyOfRange(pre, 1, index + 1), Arrays.copyOfRange(in, 0, index));
res.right = buildTree(Arrays.copyOfRange(pre, index + 1, pre.length),
Arrays.copyOfRange(in, index + 1, in.length));
return res;
}
public static int getIndex(int[] arr, int value) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == value) {
return i;
}
}
return -1;
}
}

106. Construct Binary Tree from Inorder and Postorder Traversal

Given inorder and postorder traversal of a tree, construct the binary tree.

class Solution {
public TreeNode buildTree(int[] in, int[] post) {
if (in.length == 0 || post.length == 0) {
return null;
}
if (in.length == 1) {
return new TreeNode(in[0]);
}
TreeNode res = new TreeNode(post[post.length - 1]);
int index = getIndex(in, post[post.length - 1]);
res.left = buildTree(Arrays.copyOfRange(in, 0, index), Arrays.copyOfRange(post, 0, index));
res.right = buildTree(Arrays.copyOfRange(in, index + 1, in.length),
Arrays.copyOfRange(post, index, post.length - 1));
return res;
}
public static int getIndex(int[] arr, int value) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == value) {
return i;
}
}
return -1;
}
}

889. Construct Binary Tree from Preorder and Postorder Traversal

Return any binary tree that matches the given preorder and postorder traversals.

Values in the traversals pre and post are distinct positive integers.

class Solution {
public TreeNode constructFromPrePost(int[] pre, int[] post) {
if (pre.length == 0) {
return null;
}
if (pre.length == 1) {
return new TreeNode(pre[0]);
}
TreeNode res = new TreeNode(pre[0]);
int index = getIndex(pre, post[post.length - 2]);
res.left = constructFromPrePost(Arrays.copyOfRange(pre, 1, index), Arrays.copyOfRange(post, 0, index - 1));
res.right = constructFromPrePost(Arrays.copyOfRange(pre, index, pre.length),
Arrays.copyOfRange(post, index - 1, post.length - 1));
return res;
}
public static int getIndex(int[] arr, int value) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == value) {
return i;
}
}
return -1;
}
}

LeetCode重建二叉树系列问题总结的更多相关文章

  1. [leetcode]重建二叉树(先序和终须) 中序遍和后续

    分割后长度相等,就是参数麻烦,p,先序的起始点, ib,ie 终须的结束和开始. /** * Definition for binary tree * public class TreeNode { ...

  2. [leetcode]_根据二叉树的先序遍历(后序遍历) + 中序遍历 重建二叉树

    题目1:Construct Binary Tree from Preorder and Inorder Traversal 给定一棵二叉树的先序遍历和中序遍历,求重建二叉树. 思路: 1.先序遍历的第 ...

  3. 4、重建二叉树------------>剑指offer系列

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

  4. 剑指Offer对答如流系列 - 重建二叉树

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

  5. 剑指Offer(四):重建二叉树

    说明: 1.本系列是根据<剑指Offer>这个系列做的一个小笔记. 2.直接动力是因为师兄师姐找工作很难,而且机械出生的我面试算法更难. 3.刚开始准备刷LeetCode.LintCode ...

  6. C++版-剑指offer 面试题6:重建二叉树(Leetcode105. Construct Binary Tree from Preorder and Inorder Traversal) 解题报告

    剑指offer 重建二叉树 提交网址: http://www.nowcoder.com/practice/8a19cbe657394eeaac2f6ea9b0f6fcf6?tpId=13&tq ...

  7. 剑指Offer面试题:5.重建二叉树

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

  8. NYOJ-756重建二叉树

    重建二叉树 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 题目很简单,给你一棵二叉树的后序和中序序列,求出它的前序序列(So easy!). 输入 输入有多组数据(少于 ...

  9. 剑指Offer 通过中序和先序遍历重建二叉树

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

随机推荐

  1. python3 分布式爬虫

    背景 部门(东方IC.图虫)业务驱动,需要搜集大量图片资源,做数据分析,以及正版图片维权.前期主要用node做爬虫(业务比较简单,对node比较熟悉).随着业务需求的变化,大规模爬虫遇到各种问题.py ...

  2. VS2010+OpenMP的简单使用

    OpenMP是把程序中的循环操作分给电脑的各个CPU处理器并行进行.比如说我要循环运行100次,我的电脑有两个处理器,那OpenMP就会平均分给两个处理器并行运行,每个处理器运行50次.使用方法 1. ...

  3. SpringMVC中的文件上传

    1. 配置图片服务器 一般图片会单独保存在图片服务器上, 本文为简化处理, 在Tomcat中配置一个路劲用于专门存放图片 在tomcat上配置图片虚拟目录,在tomcat下conf/server.xm ...

  4. Boyer-Moore(BM)算法,文本查找,字符串匹配问题

    KMP算法的时间复杂度是O(m + n),而Boyer-Moore算法的时间复杂度是O(n/m).文本查找中“ctrl + f”一般就是采用的BM算法. Boyer-Moore算法的关键点: 从右遍历 ...

  5. win7 中如何设置eclipse的背景色--Console

    http://blog.csdn.net/u013161399/article/details/47297781

  6. 解决MyEclipse注册失败的问题

    https://jingyan.baidu.com/article/acf728fd49519ff8e410a361.html

  7. shell 中各种括号的作用()、(())、[]、[[]]、{}

    一.小括号,圆括号 () 1.单小括号 () 命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有分号, ...

  8. redis与python交互

    import redis #连接 r=redis.StrictRedis(host="localhost",port=6379,password="sunck" ...

  9. github代码搜索技巧

    github是一个非常丰富的资源,但是面对这丰富的资源很多人不知到怎么使用,更谈不上怎么贡献给他,我们需要使用github就要学习使用他的方法,学会了使用的方法,接受了他的这种观点我们才会慢慢的给他贡 ...

  10. java的classpath路径中加点号 ‘.’ 的作用

    "."表示当前目录,就是编译或者执行程序时你所在的目录下的.class文件:而JAvA_HOME表示JDK安装路径 该路径在eclipse中是以vmarg的形式传入的,可以在任务管 ...