重建二叉树 末蓝、 2021-11-16 15:14 241阅读 0赞 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列\{1,2,4,7,3,5,6,8\}和中序遍历序列\{4,7,2,1,5,3,8,6\},则重建二叉树并返回。 代码实现 package com.zgw.newcoder; /** * Created by Zhaogw&Lss on 2019/7/27. */ class TreeNode{ TreeNode left; TreeNode right; int value; public TreeNode(int value) { this.value = value; } @Override public String toString() { return "TreeNode{" + "left=" + left + ", right=" + right + ", value=" + value + '}'; } } public class Solution5 { public static void main(String[] args) { int preorder[] = {1, 2, 4, 7, 3, 5, 6, 8}; int inorder[] = {4, 7, 2, 1, 5, 3, 8, 6}; Solution5 solution5 = new Solution5(); TreeNode trees = solution5.reConstructBinaryTree(preorder,inorder); System.out.println(trees); } public TreeNode reConstructBinaryTree(int[] pre,int[] in){ return reConstructBinaryTree(pre,0,pre.length-1,in,0,in.length-1); } private TreeNode reConstructBinaryTree(int[] pre, int startPre, int endPre, int[] in, int startIn, int endIn) { if (startPre>endPre||startIn>endIn){ return null; } /** * 递归思想,每次将左右两颗子树当成新的子树进行处理,中序的左右子树索引很好找, 前序的开始结束索引通过计算中序中左右子树的大小来计算,然后递归求解, 直到startPre>endPre||startIn>endIn说明子树整理完到。方法每次返回左子树活右子树的根节点 */ TreeNode root=new TreeNode(pre[startPre]); for (int i = startIn; i <= endIn ; i++) { if (pre[startPre] == in[i]){ root.left = reConstructBinaryTree(pre,startPre+1,startPre+i-startIn,in,startIn,i-1); root.right = reConstructBinaryTree(pre,i-startIn+startPre+1,endPre,in,i+1,endIn); } } return root; } } 参考:https://blog.csdn.net/roycon/article/details/79772639
相关 重建二叉树 ![这里写图片描述][70] class TreeNode { int val; TreeNode left; Tre ゝ一世哀愁。/ 2022年05月26日 07:57/ 0 赞/ 183 阅读
相关 重建二叉树 二叉树重建 根据二叉树的前序遍历和中序遍历,重建二叉树。综合利用前序遍历和中序遍历的特点。 / 题目描述 输入某二叉树的前序遍历和中序遍历的 Love The Way You Lie/ 2022年05月14日 15:48/ 0 赞/ 209 阅读
相关 重建二叉树 重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。如前序\{1,2,4,7,3,5,6,8 亦凉/ 2022年04月24日 13:54/ 0 赞/ 187 阅读
相关 重建二叉树 何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ 题目描述:[http://ac.jobdu.com/problem.php?cid=1039&pid=1][h 曾经终败给现在/ 2022年03月20日 02:46/ 0 赞/ 180 阅读
相关 重建二叉树 时间限制:1秒 空间限制:32768K 热度指数:524408 算法知识视频讲解 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序 阳光穿透心脏的1/2处/ 2022年03月11日 20:44/ 0 赞/ 181 阅读
相关 重建二叉树 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列\{1,2,4,7,3,5,6 古城微笑少年丶/ 2022年03月06日 12:26/ 0 赞/ 227 阅读
相关 重建二叉树 直接上代码了 struct BTNode { int val; BTNode lchild; BTNode rch 逃离我推掉我的手/ 2022年01月05日 10:39/ 0 赞/ 255 阅读
相关 二叉树重建 给定二叉树的先序遍历序列和中序遍历序列,进行二叉树的重建以及后序遍历队列。 突然看到这个问题。。发现之前的想法都忘记了=\_=||,果然算法题一日不写手生啊,还是得好好坚持 淡淡的烟草味﹌/ 2021年12月14日 04:15/ 0 赞/ 278 阅读
相关 重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列\{1,2,4,7,3,5,6,8\}和中序 妖狐艹你老母/ 2021年09月23日 09:20/ 0 赞/ 361 阅读
还没有评论,来说两句吧...