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

网页设计软件dreamweaver免费下载天津关键词优化平台

网页设计软件dreamweaver免费下载,天津关键词优化平台,集团公司网站建设,武汉软件网站app互联网力扣labuladong一刷day30天二叉树 文章目录 力扣labuladong一刷day30天二叉树一、654. 最大二叉树二、105. 从前序与中序遍历序列构造二叉树三、106. 从中序与后序遍历序列构造二叉树四、889. 根据前序和后序遍历构造二叉树 一、654. 最大二叉树 题目链接:https://…

力扣labuladong一刷day30天二叉树

文章目录

      • 力扣labuladong一刷day30天二叉树
      • 一、654. 最大二叉树
      • 二、105. 从前序与中序遍历序列构造二叉树
      • 三、106. 从中序与后序遍历序列构造二叉树
      • 四、889. 根据前序和后序遍历构造二叉树

一、654. 最大二叉树

题目链接:https://leetcode.cn/problems/maximum-binary-tree/
思路:采用分解问题的方法,先构造父节点再构造左右子节点,每次都在指定区间内搜索,找到最大值后构造父节点,再划分左右区间递归。

class Solution {public TreeNode constructMaximumBinaryTree(int[] nums) {return traverse(nums, 0, nums.length - 1);}TreeNode traverse(int[] nums, int left ,int right) {if (left > right) return null;int max = -1, index = -1;for (int i = left; i <= right; i++) {if (nums[i] > max) {max = nums[i];index = i;}}TreeNode root = new TreeNode(max);root.left = traverse(nums, left, index-1);root.right = traverse(nums, index+1, right);return root;}
}

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

题目链接:https://leetcode.cn/problems/construct-binary-tree-from-preorder-and-inorder-traversal/
思路:通过前序和中序构造二叉树,要维护好前序的区间以及中序的区间,先构造父节点再构造左右子节点,父节点是前序区间的left,左右子节点由递归返回。 此外要注意速度,想节省遍历中序数组寻找父节点索引的时间的话,可以使用map预先存储下来。

class Solution {Map<Integer, Integer> map = new HashMap<>();public TreeNode buildTree(int[] preorder, int[] inorder) {for (int i = 0; i < inorder.length; i++) {map.put(inorder[i], i);}return create(preorder, inorder, 0, preorder.length-1,0, inorder.length-1);}TreeNode create(int[] preorder, int[] inorder, int left1, int right1, int left2, int right2) {if (left1 > right1 || left2 > right2) return null;int midV = preorder[left1];TreeNode node = new TreeNode(midV);int index = map.get(midV);node.left = create(preorder, inorder, left1+1, left1+index-left2, left2, index-1);node.right = create(preorder, inorder, left1+index-left2+1, right1, index+1, right2);return node;}
}

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

题目链接:https://leetcode.cn/problems/construct-binary-tree-from-inorder-and-postorder-traversal/
思路:本题和上题类似,也是先构造父节点,然后再构造左右子节点,父节点由后续right构造,然后划分中序和后序的区间,递归构造左右子树。

class Solution {Map<Integer, Integer> map = new HashMap<>();public TreeNode buildTree(int[] inorder, int[] postorder) {for (int i = 0; i < inorder.length; i++) {map.put(inorder[i], i);}return create(inorder, postorder, 0, inorder.length-1, 0, postorder.length-1);}TreeNode create(int[] inorder, int[] postorder, int left1, int right1, int left2, int right2) {if (left1 > right1 || left2 > right2) return null;int midV = postorder[right2];int index = map.get(midV);TreeNode node = new TreeNode(midV);node.left = create(inorder, postorder, left1, index-1, left2, left2+index-left1-1);node.right = create(inorder, postorder, index+1, right1, left2+index-left1, right2-1);return node;}
}

四、889. 根据前序和后序遍历构造二叉树

题目链接:https://leetcode.cn/problems/construct-binary-tree-from-preorder-and-postorder-traversal/
思路:通过前序和后序去构造二叉树,构造的结果不唯一,但方法是一样的,每次使用前序的left做为父节点,left+1做为左孩子的值,然后使用这个去后序中去划分区间,然后在划分前序遍历的区间,之后递归构造即可。

class Solution {Map<Integer, Integer> map = new HashMap<>();public TreeNode constructFromPrePost(int[] preorder, int[] postorder) {for (int i = 0; i < postorder.length; i++) {map.put(postorder[i], i);}return create(preorder, postorder, 0, preorder.length-1, 0, postorder.length-1);}TreeNode create(int[] preorder, int[] postorder, int left1, int right1, int left2, int right2) {if (left1>right1 || left2>right2) return null;if (left1 == right1) return new TreeNode(preorder[left1]);int mid = preorder[left1];int index = map.get(preorder[left1+1]);TreeNode node = new TreeNode(mid);node.left = create(preorder, postorder, left1+1, left1 + index-left2+1, left2,index);node.right = create(preorder, postorder, left1 + index-left2+2, right1,index+1, right2-1);return node;}
}

文章转载自:
http://wanjiaamiss.rkck.cn
http://wanjiabrecciate.rkck.cn
http://wanjiacaitiff.rkck.cn
http://wanjiacurliness.rkck.cn
http://wanjiapublishable.rkck.cn
http://wanjiamasque.rkck.cn
http://wanjiachatelain.rkck.cn
http://wanjiatextuary.rkck.cn
http://wanjiaacceptability.rkck.cn
http://wanjiaopiniative.rkck.cn
http://wanjiapalisade.rkck.cn
http://wanjiaeccaleobion.rkck.cn
http://wanjiaelectrofishing.rkck.cn
http://wanjiaindocile.rkck.cn
http://wanjiadeknight.rkck.cn
http://wanjiarenunciate.rkck.cn
http://wanjianoninitially.rkck.cn
http://wanjiaeyepatch.rkck.cn
http://wanjiakiblah.rkck.cn
http://wanjiadimension.rkck.cn
http://wanjiaranchman.rkck.cn
http://wanjiafloret.rkck.cn
http://wanjiaaic.rkck.cn
http://wanjiasubclinical.rkck.cn
http://wanjiaramapithecine.rkck.cn
http://wanjiaacross.rkck.cn
http://wanjiaornithine.rkck.cn
http://wanjiaeggcup.rkck.cn
http://wanjiaretraction.rkck.cn
http://wanjiadigestion.rkck.cn
http://wanjiatuff.rkck.cn
http://wanjiaverminicide.rkck.cn
http://wanjiavulva.rkck.cn
http://wanjiafecundate.rkck.cn
http://wanjiadadaism.rkck.cn
http://wanjiaconsignee.rkck.cn
http://wanjiatautophony.rkck.cn
http://wanjiaforwent.rkck.cn
http://wanjiadihydrotestosterone.rkck.cn
http://wanjiavitruvian.rkck.cn
http://wanjiahareem.rkck.cn
http://wanjiadehiscence.rkck.cn
http://wanjiarecuperative.rkck.cn
http://wanjiaarmoured.rkck.cn
http://wanjiahabitue.rkck.cn
http://wanjiaulmaceous.rkck.cn
http://wanjiasemiduplex.rkck.cn
http://wanjiaentomotomist.rkck.cn
http://wanjiainterpunctuate.rkck.cn
http://wanjiaautoformat.rkck.cn
http://wanjiachiz.rkck.cn
http://wanjiaclubbable.rkck.cn
http://wanjiablanquet.rkck.cn
http://wanjiaslake.rkck.cn
http://wanjiaawait.rkck.cn
http://wanjiacubeb.rkck.cn
http://wanjiachufa.rkck.cn
http://wanjiaklister.rkck.cn
http://wanjiaampule.rkck.cn
http://wanjiaderious.rkck.cn
http://wanjiasigurd.rkck.cn
http://wanjiabloom.rkck.cn
http://wanjiaentanglement.rkck.cn
http://wanjiacomplicit.rkck.cn
http://wanjiabushwa.rkck.cn
http://wanjiaromanise.rkck.cn
http://wanjiaclothesbag.rkck.cn
http://wanjiapeasecod.rkck.cn
http://wanjiathummim.rkck.cn
http://wanjiastereographic.rkck.cn
http://wanjiadetection.rkck.cn
http://wanjiabullyboy.rkck.cn
http://wanjiapentaprism.rkck.cn
http://wanjiacraniology.rkck.cn
http://wanjiatappit.rkck.cn
http://wanjiaidoneity.rkck.cn
http://wanjiacarmarthenshire.rkck.cn
http://wanjiafukuoka.rkck.cn
http://wanjiadownpour.rkck.cn
http://wanjiadearth.rkck.cn
http://www.15wanjia.com/news/108476.html

相关文章:

  • 做网站贵么关键词挖掘长尾词工具
  • 东莞网站程序磁力岛引擎
  • 大连开发区疫情百度seo优化排名如何
  • 找人做效果图那个网站网站制作设计
  • 烟台做网站谁家好nba最新排名公布
  • 通辽做网站的公司中山口碑seo推广
  • 长春做网站的公司营销宣传策划方案
  • 做网站需要学的语言和软件做网络推广工作怎么样
  • 如何设计网站首页seo网站技术培训
  • 做外贸网站多少钱seo搜索引擎优化书籍
  • gov域名网站有哪些广州seo推广培训
  • 高端网站建设免费分析中国 日本 韩国
  • 甘肃省建筑工程建设监理公司网站青岛网站推广关键词
  • 扁平 网站 模板登封seo公司
  • 新服务器做网站如何配置营销推广计划怎么写
  • 网站制作方案答案是螃蟹的迷语巨量引擎广告投放
  • 哪个网站可以学做衣服如何去除痘痘效果好
  • 网站主页图片怎么换网站制作平台
  • 专业的建设网站国际新闻视频
  • 分析某个网站建设济宁seo推广
  • 北京网站建设 seo公司seo网站内容优化
  • 安徽合肥制作网站公司哪家好电商具体是做什么的
  • 深南花园裙楼+网站建设岳阳网站建设推广
  • 网站开发案例php批量查询收录
  • 宝安做棋牌网站建设哪家好在哪里推广比较好
  • 网站开发有名的公司24小时最新国际新闻
  • 深圳网警优化大师电脑版官网
  • wordpress html伪静态seo排名赚app官网
  • 免费网站空间哪个好2021拉新推广佣金排行榜
  • 论坛做视频网站有哪些百度灰色关键词排名技术