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

鲜花网站怎么做营销策略的重要性

鲜花网站怎么做,营销策略的重要性,开源asp学校系统网站,wordpress 反馈插件1. 题目 描述 输入一棵节点数为 n 的二叉树,判断该二叉树是否是平衡二叉树。 在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树 平衡二叉树(Balanced Binary Tree),具有以下性质&#xff1…

1. 题目

描述

输入一棵节点数为 n 的二叉树,判断该二叉树是否是平衡二叉树。

在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树

平衡二叉树(Balanced Binary Tree),具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。

样例解释:

样例二叉树如图,为一颗平衡二叉树

注:我们约定空树是平衡二叉树。

数据范围:n≤100,树上节点的val值满足 0 ≤n≤1000

要求:空间复杂度O(1),时间复杂度 O(n)

输入描述:

输入一棵二叉树的根节点

返回值描述:

输出一个布尔类型的值

示例1

输入:

{1,2,3,4,5,6,7}

返回值:

true

示例2

输入:

{}

返回值:

true

2. 解题思路

先来看平衡二叉树的性质:

平衡二叉树(Balanced Binary Tree),具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。

因此可以借助二叉树的高度来判断是否为平衡二叉树。整体思路为:先计算左右子树的高度,再比较左右子树的高度差(如果高度差大于1,则不是平衡二叉树)。

①对每一个节点的左右子树进行比较;②如果左子树不是平衡二叉树,就没有必要对右子树进行是否平衡的判断;③采用递归的方式对左右子树进行判断。

由于要采用递归来实现平衡二叉树的判断,因此需要验证是否满足递归的两个条件:

可以看出,求解二叉树平衡性的判断满足递归的两个条件,因此可以采用递归的方法来求解。由于平衡性的判断依赖于二叉树的高度,二叉树的高度求解参考前序文章《可视化图解算法25:二叉树的最大深度(高度)》,二叉树高度求解对应的递推公式如下:

接下来就可以依据二叉树的高度进行平衡性的判断,先求解二叉树的左右子树的高度,再判断左右子树高度差是否超过1,如果超过1则不是平衡二叉树。

如果文字描述的不太清楚,你可以参考视频的详细讲解。

  • Python编码:哔哩哔哩_bilibilihttps://www.bilibili.com/cheese/play/ep1372113

  • Java编码:数据结构笔试面试算法-Java语言版_哔哩哔哩_bilibili数据结构笔试面试算法-Java语言版,bilibili课堂,哔哩哔哩课堂,哔哩哔哩,Bilibili,B站,弹幕https://www.bilibili.com/cheese/play/ep1367352

  • Golang编码:哔哩哔哩_bilibilihttps://www.bilibili.com/cheese/play/ep1364777

3. 编码实现

核心代码如下:

/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param pRoot TreeNode类* @return bool布尔型
*/
func IsBalanced_Solution(pRoot *TreeNode) bool {// write code heretreeDepth(pRoot)return isBalanced
}var isBalanced = truefunc treeDepth(root *TreeNode) int {// 2. 递归终止条件if root == nil {return 0}// 1. 问题分解// 1.1 求解左子树的高度l := treeDepth(root.Left)// 1.2 求解右子树的高度r := treeDepth(root.Right)if math.Abs(float64(l-r)) > 1 {isBalanced = false // 不是平衡树,更改全局变量return -1          // 加一个标记-1,已经不可能是平衡树了(减少递归计算次数),直接返回}// 1.3 求解当前树的高度dep := math.Max(float64(l), float64(r)) + 1return int(dep)
}

具体完整代码你可以参考下面视频的详细讲解。

  • Python编码:哔哩哔哩_bilibilihttps://www.bilibili.com/cheese/play/ep1372113

  • Java编码:数据结构笔试面试算法-Java语言版_哔哩哔哩_bilibili数据结构笔试面试算法-Java语言版,bilibili课堂,哔哩哔哩课堂,哔哩哔哩,Bilibili,B站,弹幕https://www.bilibili.com/cheese/play/ep1367352

  • Golang编码:数据结构笔试面试算法-Go语言版_哔哩哔哩_bilibili数据结构笔试面试算法-Go语言版,bilibili课堂,哔哩哔哩课堂,哔哩哔哩,Bilibili,B站,弹幕https://www.bilibili.com/cheese/play/ep1364777

4.小结

二叉树平衡性的判断,可以通过二叉树的高度来完成,即先求解二叉树的左右子树的高度,再判断左右子树高度差是否超过1,如果超过1则不是平衡二叉树。

《数据结构与算法》深度精讲课程正式上线啦!七大核心算法模块全解析:

  ✅   链表

  ✅   二叉树

  ✅   二分查找、排序

  ✅   堆、栈、队列

  ✅   回溯算法

  ✅   哈希算法

  ✅   动态规划

无论你是备战笔试面试、提升代码效率,还是突破技术瓶颈,这套课程都将为你构建扎实的算法思维底座。🔥立即加入学习打卡,与千名开发者共同进阶!

  • Python编码实现:数据结构笔试面试算法-Python语言版_哔哩哔哩_bilibili数据结构笔试面试算法-Python语言版,bilibili课堂,哔哩哔哩课堂,哔哩哔哩,Bilibili,B站,弹幕https://www.bilibili.com/cheese/play/ss897667807

  • Java编码实现:数据结构笔试面试算法-Java语言版_哔哩哔哩_bilibili数据结构笔试面试算法-Java语言版,bilibili课堂,哔哩哔哩课堂,哔哩哔哩,Bilibili,B站,弹幕https://www.bilibili.com/cheese/play/ss161443488

  • Golang编码实现:数据结构笔试面试算法-Go语言版_哔哩哔哩_bilibili数据结构笔试面试算法-Go语言版,bilibili课堂,哔哩哔哩课堂,哔哩哔哩,Bilibili,B站,弹幕https://www.bilibili.com/cheese/play/ss63997

对于二叉树的相关算法,我们总结了一套【可视化+图解】方法,依据此方法来解决相关问题,算法变得易于理解,写出来的代码可读性高也不容易出错。具体也可以参考视频详细讲解。

今日佳句:长风破浪会有时,直挂云帆济沧海。

http://www.dtcms.com/wzjs/549871.html

相关文章:

  • wdcp网站建设服务好的网站建设
  • 展览设计网站推荐大型网站建设制作公司
  • 鞍山网站建设联系方式安阳网站建设公司出租车公司
  • 学校网站建设公司做网站郑州汉狮
  • c蔡甸区城乡建设局网站提供服务好的网站归档系统
  • 艺术家个人网站设计html网页设计期末大作业
  • 网站解析后 问题一个公司完整的组织架构
  • 网站开发与运用wordpress 标题 插件
  • 苏州高新区网站建设广州网站建设程序员培训
  • 宜宾网站建设多少钱东莞轨道公司
  • 企业网站建站流程搭建网站需要的软件
  • 西北电力建设甘肃工程公司网站二级网站的建设
  • 湖南英文网站建设wordpress时尚主题
  • 成都企业网站营销设计公司网站建设哪个好
  • 网站建设大连郑州快速建站价格
  • 如何做服装企业商城网站wordpress搭建商城
  • 盗用网站模板中国互联网服务平台
  • 手机网站横竖屏电子公司网页设计
  • 保定seo网站排名搜索引擎优化包括哪些内容
  • 商城网站 个人备案欧美租车公司网站模板1psd
  • 下载的asp网页模板怎么应用到网站上海平台网站建设哪家有
  • 凡科网做网站天津自己制作网站
  • 安阳做网站网站备案号在哪里查询
  • 广州市学校网站建设公司wordpress无法上传歌曲
  • 福田企业的网站建设公司好吗wordpress主题图片不显示
  • 简单建设一个网站的过程wordpress 备份修改
  • 班级建设怎样建立班级网站wordpress 忘记用户名
  • 微博营销网站源码国外免费源码网站
  • 南阳高质量建设大城市网站页面运营
  • 顺德建设幼儿院报名网站国外唯美flash个人网站欣赏