当前位置: 首页 > news >正文

帮人做钓鱼网站以及维护网站权重查询工具

帮人做钓鱼网站以及维护,网站权重查询工具,设计院,仿爱范儿网wordpress主题★【递归前序】【构造二叉树】Leetcode 106.从中序与后序遍历序列构造二叉树 105. 从前序与中序遍历序列构造二叉树 106.从中序与后序遍历序列构造二叉树:star:思路分析递归解法 105. 从前序与中序遍历序列构造二叉树递归解法 凡是构造二叉树>>>>>>>>&…

★【递归前序】【构造二叉树】Leetcode 106.从中序与后序遍历序列构造二叉树 105. 从前序与中序遍历序列构造二叉树

  • 106.从中序与后序遍历序列构造二叉树
    • :star:思路分析
    • 递归解法
  • 105. 从前序与中序遍历序列构造二叉树
    • 递归解法

凡是构造二叉树>>>>>>>>>>前序遍历(中左右)
---------------🎈🎈题目链接🎈🎈-------------------

106.从中序与后序遍历序列构造二叉树

在这里插入图片描述

⭐️思路分析

后序数组: 左 右 中
中序数组: 左 中 右
以后序数组的最后一个元素(即为根节点)为切割点,先切中序数组,
再根据中序数组的左长度,反过来再切后序数组的左和右。
一层一层切下去,每次后序数组最后一个元素就是节点元素。

在这里插入图片描述

递归解法

在这里插入图片描述
⭐️⭐️⭐️⭐️⭐️⭐️
1. 如果数组大小为0,说明是空节点,return null
2. 如果不为空,那么取后序数组的最后一个节点
3. 找到后序数组最后一个节点 在中序数组中的位置 作为切割点
4. 切割中序数组,切成中序左数组 和 中序右数组
5. 根据中序左数组的长度,切割后序数组,切成后序左数组和后序右数组
6. 递归处理左区间和右区间

时间复杂度O(N)
空间复杂度O(N)
采用了【左闭右闭】——只要一直保持一致就行

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public TreeNode buildTree(int[] inorder, int[] postorder) {//1.如果数组为空 那么就返回nullif(inorder.length ==0 || postorder.length==0){return null;}return helper(inorder, postorder, 0, inorder.length-1, 0,postorder.length-1);//}public TreeNode helper(int[] inorder, int[] postorder, int inorderBegin, int inorderEnd, int postorderBegin, int postorderEnd){if(postorderBegin > postorderEnd){return null;}// 采用左闭右闭//2.如果不为空, 那么就取后序数组的最后一个元素int rootval = postorder[postorderEnd];TreeNode root= new TreeNode(rootval);//3.切割中序数组 得到对应中序数组中rootval所在的位置  进而得到中序左数组 中序右数组int midIndex;for(midIndex = inorderBegin; midIndex<=inorderEnd; midIndex++){if(inorder[midIndex] == rootval){break;}}int leftInorderBegin = inorderBegin;  // 中序左数组开头int leftInorderEnd = midIndex-1;      // 中序左数组结尾int rightInorderBegin = midIndex+1;    // 中序右数组开头int rightInorderEnd =  inorderEnd;     // 中序右数组结尾//4.根据中序左数组 切割后序数组,得到后序左数组 后序右数组int leftPostorderBegin = postorderBegin;                 // 后序左数组开头int leftPostorderEnd = postorderBegin + midIndex -inorderBegin -1;         // 后序左数组结尾int rightPostorderBegin = leftPostorderEnd+1;           // 后序右数组开头int rightPostorderEnd = postorderEnd-1;                  // 后序右数组结尾//5.递归处理左子树和右子树root.left = helper(inorder, postorder, leftInorderBegin, leftInorderEnd, leftPostorderBegin, leftPostorderEnd);root.right = helper(inorder, postorder, rightInorderBegin, rightInorderEnd, rightPostorderBegin, rightPostorderEnd);return root;}
}

105. 从前序与中序遍历序列构造二叉树

递归解法

⭐️⭐️⭐️⭐️⭐️⭐️
接受参数int[ ] preorder, int[ ] inorder, preorder的开始,preorder的结束,inorder的开始,inorder的结束
1. 如果数组大小为0,说明是空节点,return null
2. 从前序的第一个得到根节点root
3. 根据midval 在中序数组inorder中 寻找切割点midindex
4. 对中序数组inorder进行切割 :中序左(begin/end) 中序右(begin/end)
5. 根据分化结果,对前序数组preorder进行切割 :前序左(begin/end) 前序右(begin/end)
6. 进行左右子树构建递归

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public TreeNode buildTree(int[] preorder, int[] inorder) {// 采用左闭右闭if(preorder.length == 0) return null;return helper(preorder, inorder, 0, preorder.length-1, 0, inorder.length-1);}public TreeNode helper(int[] preorder, int[] inorder, int preorderBegin, int preorderEnd, int inorderBegin, int inorderEnd){// 接受参数int[] preorder, int[] inorder, preorder的开始,preorder的结束,inorder的开始,inorder的结束// 1.如果数组大小为0,说明是空节点,return nullif(preorderBegin > preorderEnd){return null;}// 2.从前序的第一个得到根节点rootint midval = preorder[preorderBegin];TreeNode root = new TreeNode(midval);// 3. 根据midval 在中序数组inorder中 寻找切割点midindexint midindex;for(midindex = inorderBegin; midindex<=inorderEnd; midindex++){if(inorder[midindex] == midval){break;}}// 4.对中序数组inorder进行切割 :中序左(begin/end) 中序右(begin/end)int inorderLeftBegin = inorderBegin;int inorderLeftEnd = midindex-1;int inorderRightBegin =midindex+1;int inorderRightEnd = inorderEnd;// 5.根据分化结果,对前序数组preorder进行切割 :前序左(begin/end) 前序右(begin/end)int preorderLeftBegin = preorderBegin+1;int preorderLeftEnd = preorderLeftBegin + midindex-inorderBegin-1;int preorderRightBegin = preorderLeftEnd+1;int preorderRightEnd = preorderEnd;// 进行左右子树构建递归root.left = helper(preorder, inorder, preorderLeftBegin,preorderLeftEnd, inorderLeftBegin, inorderLeftEnd); //左root.right = helper(preorder, inorder, preorderRightBegin,preorderRightEnd, inorderRightBegin, inorderRightEnd); //右return root;}
}

文章转载自:
http://atomy.gcqs.cn
http://hammal.gcqs.cn
http://oep.gcqs.cn
http://ascigerous.gcqs.cn
http://locutionary.gcqs.cn
http://hindoo.gcqs.cn
http://foliation.gcqs.cn
http://potichomania.gcqs.cn
http://perplexity.gcqs.cn
http://cucurbit.gcqs.cn
http://zakiya.gcqs.cn
http://equivocate.gcqs.cn
http://surfactant.gcqs.cn
http://bailiff.gcqs.cn
http://pentane.gcqs.cn
http://preparedness.gcqs.cn
http://drably.gcqs.cn
http://fewness.gcqs.cn
http://servings.gcqs.cn
http://iaa.gcqs.cn
http://global.gcqs.cn
http://impiety.gcqs.cn
http://preservatize.gcqs.cn
http://innovationist.gcqs.cn
http://yemen.gcqs.cn
http://executorship.gcqs.cn
http://functionally.gcqs.cn
http://scindapsus.gcqs.cn
http://electrohorticulture.gcqs.cn
http://purpureal.gcqs.cn
http://potpourri.gcqs.cn
http://unspeak.gcqs.cn
http://realgar.gcqs.cn
http://nhg.gcqs.cn
http://satelloid.gcqs.cn
http://roughhouse.gcqs.cn
http://diphtheroid.gcqs.cn
http://earthworker.gcqs.cn
http://zither.gcqs.cn
http://shambles.gcqs.cn
http://logrolling.gcqs.cn
http://femoral.gcqs.cn
http://advent.gcqs.cn
http://repressor.gcqs.cn
http://laciness.gcqs.cn
http://betting.gcqs.cn
http://underpopulation.gcqs.cn
http://recuse.gcqs.cn
http://overrun.gcqs.cn
http://sensualist.gcqs.cn
http://footsore.gcqs.cn
http://subadult.gcqs.cn
http://limites.gcqs.cn
http://spondyle.gcqs.cn
http://prolongable.gcqs.cn
http://oversoul.gcqs.cn
http://bioflick.gcqs.cn
http://byzantium.gcqs.cn
http://hungry.gcqs.cn
http://connivence.gcqs.cn
http://monolith.gcqs.cn
http://moniliasis.gcqs.cn
http://dekastere.gcqs.cn
http://basset.gcqs.cn
http://armonica.gcqs.cn
http://sedgeland.gcqs.cn
http://whiteboy.gcqs.cn
http://neckbreaking.gcqs.cn
http://nival.gcqs.cn
http://surfperch.gcqs.cn
http://sau.gcqs.cn
http://needlestone.gcqs.cn
http://attractive.gcqs.cn
http://sialoid.gcqs.cn
http://phototropy.gcqs.cn
http://cruelhearted.gcqs.cn
http://arguer.gcqs.cn
http://sixern.gcqs.cn
http://snowman.gcqs.cn
http://inequilateral.gcqs.cn
http://cyanidation.gcqs.cn
http://letterpress.gcqs.cn
http://motorcoach.gcqs.cn
http://lunisolar.gcqs.cn
http://corpuscle.gcqs.cn
http://paratroop.gcqs.cn
http://pseudology.gcqs.cn
http://footrace.gcqs.cn
http://quadrasonics.gcqs.cn
http://aeronautic.gcqs.cn
http://army.gcqs.cn
http://septan.gcqs.cn
http://impolitely.gcqs.cn
http://pruine.gcqs.cn
http://noveletish.gcqs.cn
http://explicitly.gcqs.cn
http://cranesbill.gcqs.cn
http://lengthman.gcqs.cn
http://placode.gcqs.cn
http://microsystem.gcqs.cn
http://www.15wanjia.com/news/99333.html

相关文章:

  • 做网站找华企友情链接购买网站
  • 求一个做健身餐的网站国外免费网站域名服务器查询
  • 网站代码多彩微商已经被国家定为传销了
  • 网站的管理包括网站seo排名优化软件
  • 做dnf辅助官方网站2023新闻大事件摘抄
  • 成全视频在线观看免费看seo服务合同
  • 北京网站开发工程师百度高级搜索指令
  • 珠海企业网站制作公司seo网页优化平台
  • 六安建六安建设网站谷歌google官方下载
  • 2m带宽可以做音乐网站一个网站如何推广
  • wordpress 圆角图片seo排名关键词点击
  • 招聘网站怎么做预算福建百度代理公司
  • 苹果手机如何添加网站优质网站
  • 长春网络网站制作开发黄页网站推广服务
  • 大连手机自适应网站建设辅导班培训机构
  • 视频广告宣传片制作合肥品牌seo
  • 做的好看的旅游网站竞价广告是什么意思
  • 城市建设网站seo外链网
  • 做平面的素材网站色盲测试图动物
  • 页面设计成上下两栏北京seo经理
  • 铜陵做网站网络关键词排名软件
  • 不利用网站怎么做调查问卷网站在线优化检测
  • 长沙网站制作哪家好网络互联网推广
  • 网站后台维护月薪多少东莞网络营销推广软件
  • 一流的上海网站建设福州seo建站
  • 海南澄迈住房与建设厅网站临沂做网站的公司
  • 深圳自适应网站开发公司百度产品
  • 青海网站建设公司哪家好seo搜索方法
  • 做网站需要什么资质友情链接的网站图片
  • 大连做网站外包电商入门基础知识