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

古建设工程造价管理协会网站免费大数据平台

古建设工程造价管理协会网站,免费大数据平台,北京做网站的好公司有哪些,网站怎么做301669. 修剪二叉搜索树 题目 参考文章 思路:这题其实就是删除不符合上下边界的节点。注意:这里删除不符合上下边界节点时,这个不符合上下边界的节点的左或右子树可能存在符合上下边界的节点,所i有每次比较完之后,要继…

669. 修剪二叉搜索树 

题目

参考文章

思路:这题其实就是删除不符合上下边界的节点。注意:这里删除不符合上下边界节点时,这个不符合上下边界的节点的左或右子树可能存在符合上下边界的节点,所i有每次比较完之后,要继续遍历其左或右子树,直到把所有不符合上下边界的节点都删除为止

代码:

class Solution {public TreeNode trimBST(TreeNode root, int low, int high) {if (root == null) {return null;}if (root.val < low) {return trimBST(root.right, low, high); //当当前节点值小于下边界时,就直接继续遍历当前节点的右子树即可,找到符合上下边界的值}if (root.val > high) {//当当前节点值大于上边界时,就直接继续遍历当前节点的左子树即可,找到符合上下边界的值return trimBST(root.left, low, high);}// root在[low,high]范围内//接入如何条件的左右孩子root.left = trimBST(root.left, low, high);root.right = trimBST(root.right, low, high);return root;}
}

108.将有序数组转换为二叉搜索树 

题目

参考文章

思路:这道题目是构造平衡二叉搜索树,所以我们构造的时候,不能只在节点的某一边构造。因此我们要从数组的中间位置开始构造根节点,我们采用左闭右开的方式。因为是左闭右开,所以非法条件为 left>=right;然后每次取中间数组位置构建值,构建完后又继续构建左右节点

代码:

class Solution {public TreeNode sortedArrayToBST(int[] nums) {return sortedArrayToBST(nums, 0, nums.length);}public TreeNode sortedArrayToBST(int[] nums, int left, int right) {if (left >= right) {return null;}if (right - left == 1) {//当遍历到当前数组的的下标位置相差1时,表示已经在数组边界,所以直接构建节点返回即可return new TreeNode(nums[left]);}int mid = left + (right - left) / 2;TreeNode root = new TreeNode(nums[mid]);root.left = sortedArrayToBST(nums, left, mid);root.right = sortedArrayToBST(nums, mid + 1, right);return root;}
}

538.把二叉搜索树转换为累加树 

题目

参考文章

思路:这题目的意思就是让我们从这个二叉搜索树从大到小遍历,原来左中右的情况是从小到大遍历,所以从大到小遍历就是右中左。了解这个这题目就很好解决了。这里设置一个int sum,用于存储累加值,而且每次累加后,当前记得的值就更新为sum(题目要求),按右中左去遍历即可

代码:

class Solution {int sum;public TreeNode convertBST(TreeNode root) {sum = 0;convertBST1(root);return root;}// 按右中左顺序遍历,累加即可public void convertBST1(TreeNode root) {if (root == null) {return;}convertBST1(root.right);sum += root.val;root.val = sum;convertBST1(root.left);}
}

二叉树总结

在二叉树题目选择什么遍历顺序是不少同学头疼的事情,我们做了这么多二叉树的题目了,Carl给大家大体分分类

  • 涉及到二叉树的构造,无论普通二叉树还是二叉搜索树一定前序,都是先构造中节点。

  • 求普通二叉树的属性,一般是后序,一般要通过递归函数的返回值做计算。

  • 求二叉搜索树的属性,一定是中序了,要不白瞎了有序性了。

注意在普通二叉树的属性中,我用的是一般为后序,例如单纯求深度就用前序,二叉树:找所有路径 (opens new window)也用了前序,这是为了方便让父节点指向子节点。

所以求普通二叉树的属性还是要具体问题具体分析。

http://www.dinnco.com/news/56630.html

相关文章:

  • 重庆颐众达网站网站备案查询工信部
  • 番禺网站建设培训万网是什么网站
  • 做此广告的网站2024百度下载
  • 海沧做网站设计公司网站
  • 公司网站建设深优化防疫措施+科学精准防控
  • 网上做代销上哪个网站100条经典广告语
  • 自适应网站开发公司电商怎么做?如何从零开始学做电商赚钱
  • 网站商务通登陆不上网站内容优化方法
  • 网页设计模拟试题答案徐州seo培训
  • 做网站坚持多少年会有起色大型营销型网站制作
  • 郑州web网站建设公司seo的公司排名
  • 360老是提示危险网站bing搜索引擎下载
  • 甘肃网站建设制作商win10系统优化软件哪个好
  • 蚌埠网站建设专业公司公司网站制作需要多少钱
  • 深圳市住房建设部官方网站如何分析百度指数
  • 二次开发是什么百度seo是啥意思
  • 网站建设教程网黑马程序员培训机构在哪
  • 微信页面设计网站app下载注册推广平台
  • 什么是做自己的网站站长工具精华
  • 建设一个营销网站的费用台州seo
  • 个人cms网站企业网站的在线推广方法有
  • 东莞网站开发建设长沙seo排名公司
  • 网站兼容性怎么解决宁波网络推广联系方式
  • wordpress 发邮件 慢seo优化网站教程
  • 惠州 网站建设windows优化大师怎么用
  • canvas网站在线设计神器女教师遭网课入侵视频大全播放
  • 北京做网站的公司有哪些品牌推广的渠道有哪些
  • 成都网站制作百度指数官网查询
  • 日本女做网站百度网站流量统计
  • 0元建设黑网站网上营销怎么做