重建二叉树 古城微笑少年丶 2022-03-06 12:26 225阅读 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 赞/ 181 阅读
相关 重建二叉树 二叉树重建 根据二叉树的前序遍历和中序遍历,重建二叉树。综合利用前序遍历和中序遍历的特点。 / 题目描述 输入某二叉树的前序遍历和中序遍历的 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 赞/ 186 阅读
相关 重建二叉树 [重建二叉树][Link 1] 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前 偏执的太偏执、/ 2022年03月25日 15:18/ 0 赞/ 138 阅读
相关 重建二叉树 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列\{1,2,4,7,3,5,6 古城微笑少年丶/ 2022年03月06日 12:26/ 0 赞/ 225 阅读
相关 重建二叉树 直接上代码了 struct BTNode { int val; BTNode lchild; BTNode rch 逃离我推掉我的手/ 2022年01月05日 10:39/ 0 赞/ 254 阅读
相关 二叉树重建 给定二叉树的先序遍历序列和中序遍历序列,进行二叉树的重建以及后序遍历队列。 突然看到这个问题。。发现之前的想法都忘记了=\_=||,果然算法题一日不写手生啊,还是得好好坚持 淡淡的烟草味﹌/ 2021年12月14日 04:15/ 0 赞/ 277 阅读
相关 重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列\{1,2,4,7,3,5,6,8\}和中序 末蓝、/ 2021年11月16日 15:14/ 0 赞/ 238 阅读
相关 重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列\{1,2,4,7,3,5,6,8\}和中序 妖狐艹你老母/ 2021年09月23日 09:20/ 0 赞/ 360 阅读
还没有评论,来说两句吧...