重建二叉树 古城微笑少年丶 2022-03-06 12:26 243阅读 0赞 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列\{1,2,4,7,3,5,6,8\}和中序遍历序列\{4,7,2,1,5,3,8,6\},则重建二叉树并返回。 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMwMjQyOTg3_size_16_color_FFFFFF_t_70] **算法步骤: 1.建立根节点 2.在中序序列中查找根节点的位置K,将中序序列分为左右两个部分,左子树中序序列【下界,k-1】,右子树【k+1,上界】 3.递归建立左子树 4.递归建立右子树 5.递归终止:下界大于上界** /** * 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) {//用来存储重建二叉树的数组,包含左子树右子树 return reConBTree(pre,0,pre.length-1,in,0,in.length-1);//返回二叉树 } public TreeNode reConBTree(int [] pre,int preleft,int preright,int [] in,int inleft,int inright){ if(preleft > preright || inleft> inright)//当到达边界条件(先序序列、中序序列)时候返回null return null; //新建一个TreeNode TreeNode pRootOfTree = new TreeNode(pre[preleft]); //对中序数组进行输入边界的遍历 for(int i = inleft; i<= inright; i++){ if(pre[preleft] == in[i]){ //重构左子树,注意边界条件 pRootOfTree.left = reConBTree(pre,preleft+1,preleft+i-inleft,in,inleft,i-1); //重构右子树,注意边界条件 pRootOfTree.right = reConBTree(pre,preleft+i+1-inleft,preright,in,i+1,inright); } } return pRootOfTree; } } [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMwMjQyOTg3_size_16_color_FFFFFF_t_70]: /images/20220303/394cb4b13d7049a183d93fe91827ffa7.png
相关 重建二叉树 ![这里写图片描述][70] class TreeNode { int val; TreeNode left; Tre ゝ一世哀愁。/ 2022年05月26日 07:57/ 0 赞/ 197 阅读
相关 重建二叉树 二叉树重建 根据二叉树的前序遍历和中序遍历,重建二叉树。综合利用前序遍历和中序遍历的特点。 / 题目描述 输入某二叉树的前序遍历和中序遍历的 Love The Way You Lie/ 2022年05月14日 15:48/ 0 赞/ 227 阅读
相关 重建二叉树 重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。如前序\{1,2,4,7,3,5,6,8 亦凉/ 2022年04月24日 13:54/ 0 赞/ 200 阅读
相关 重建二叉树 [重建二叉树][Link 1] 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前 偏执的太偏执、/ 2022年03月25日 15:18/ 0 赞/ 159 阅读
相关 重建二叉树 时间限制:1秒 空间限制:32768K 热度指数:524408 算法知识视频讲解 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序 阳光穿透心脏的1/2处/ 2022年03月11日 20:44/ 0 赞/ 201 阅读
相关 重建二叉树 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列\{1,2,4,7,3,5,6 古城微笑少年丶/ 2022年03月06日 12:26/ 0 赞/ 244 阅读
相关 二叉树重建 给定二叉树的先序遍历序列和中序遍历序列,进行二叉树的重建以及后序遍历队列。 突然看到这个问题。。发现之前的想法都忘记了=\_=||,果然算法题一日不写手生啊,还是得好好坚持 淡淡的烟草味﹌/ 2021年12月14日 04:15/ 0 赞/ 292 阅读
相关 重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列\{1,2,4,7,3,5,6,8\}和中序 末蓝、/ 2021年11月16日 15:14/ 0 赞/ 263 阅读
相关 重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列\{1,2,4,7,3,5,6,8\}和中序 妖狐艹你老母/ 2021年09月23日 09:20/ 0 赞/ 382 阅读
还没有评论,来说两句吧...