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

day16|二叉树的属性

在这里插入图片描述
相关题目
● 104.二叉树的最大深度 559.n叉树的最大深度
● 111.二叉树的最小深度
● 222.完全二叉树的节点个数

二叉树的深度与高度

在这里插入图片描述
如图,
二叉树的深度表示:任意一个叶子节点到根节点的距离,是从上往下计数的,因此使用前序遍历得到任意一个叶子节点的深度
二叉树的高度表示:根节点到叶子节点的距离,是从下往上计数的,因此使用后序遍历得到跟根节点到叶子节点的高度
而二叉树的最大深度即就是根节点的高度(慢慢品),我的理解:二叉树的高度表示根节点到最后一层叶子节点的距离,刚好等于二叉树的最大深度,所以卡哥才这样总结的

二叉树的最大深度

由于根节点的高度就是这棵二叉树的最大深度,因此我们使用后序遍历求解
递归实现:递归三部曲

  1. 确定入参:二叉树的根节点
  2. 结束条件:遍历节点为null时停止
  3. 单次循环过程:输出左子树的高度和右子树的高度,取最大值
    实现过程:
public int maxDepth(Node root) {if(root == null){return 0;}int deep = 0;for (Node chrild:root.children) {int curDeep = maxDepth(chrild);deep = Math.max(deep,curDeep);}return deep+1;}

n叉树的最大深度

实现过程:

 public int maxDepth(Node root) {if(root == null){return 0;}int deep = 0;for (Node chrild:root.children) {int curDeep = maxDepth(chrild);deep = Math.max(deep,curDeep);}return deep+1;}

二叉树的最小深度

这个玩意不是很好理解
得看视频回顾回顾:
先上代码

public int minDepth(TreeNode root) {//后序,求高度if (root == null) {return 0;}int leftDeep = minDepth(root.left);int rightDeep = minDepth(root.right);if(root.left == null && root.right!=null){return rightDeep+1;}if(root.left != null && root.right==null){return leftDeep+1;}return Math.min(leftDeep,rightDeep)+1;}

满二叉树的应用

完全二叉树的节点个数

见下篇文章讲解

相关文章:

  • Android App启动流程和源码详解
  • Flutter 中的 LicensePage 小部件:全面指南
  • 基于transformers框架实践Bert系列2--命名实体识别
  • 【因果推断从入门到精通二】随机实验3
  • 求第 N 个泰波那契数 | 动态规划
  • 教你用U-Mail搭建一个企业邮箱系统
  • ArcGIS Maps SDK for JS:使用queryFeatures方法查询 FeatureLayer 中符合条件的要素
  • 深入浅出:探索堆内存与分配器的奥秘
  • Vue.js Promise 与 async/await 的比较
  • MyBatisPlus使用流程
  • AI--向量的存储和检索
  • Java开发大厂面试第20讲:什么是分布式锁?Redi 怎样实现的分布式锁?
  • 如何为ChatGPT编写有效的提示词:软件开发者的指南
  • Servlet的response对象
  • 爬虫实训案例:中国大学排名
  • CentOS7 安装JDK
  • ECMAScript入门(七)--Module语法
  • emacs初体验
  • ES6系统学习----从Apollo Client看解构赋值
  • Java-详解HashMap
  • MobX
  • php面试题 汇集2
  • Rancher-k8s加速安装文档
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • 对超线程几个不同角度的解释
  • 老板让我十分钟上手nx-admin
  • 免费小说阅读小程序
  • 前端
  • 如何使用 JavaScript 解析 URL
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 首页查询功能的一次实现过程
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 正则学习笔记
  • ​queue --- 一个同步的队列类​
  • #QT(智能家居界面-界面切换)
  • (leetcode学习)236. 二叉树的最近公共祖先
  • (Ruby)Ubuntu12.04安装Rails环境
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (生成器)yield与(迭代器)generator
  • (一) storm的集群安装与配置
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (转)visual stdio 书签功能介绍
  • ****三次握手和四次挥手
  • *算法训练(leetcode)第四十七天 | 并查集理论基础、107. 寻找存在的路径
  • . NET自动找可写目录
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .NET Standard 的管理策略
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .NET 回调、接口回调、 委托
  • .net开发引用程序集提示没有强名称的解决办法
  • .NET文档生成工具ADB使用图文教程
  • .NET应用架构设计:原则、模式与实践 目录预览
  • @RequestMapping 的作用是什么?
  • [ vulhub漏洞复现篇 ] Apache Flink目录遍历(CVE-2020-17519)
  • [20180312]进程管理其中的SQL Server进程占用内存远远大于SQL server内部统计出来的内存...