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

(二刷)代码随想录第16天|104.二叉树的最大深度 559.n叉树的最大深度● 111.二叉树的最小深度● 222.完全二叉树的节点个数

104.二叉树的最大深度

104. 二叉树的最大深度 - 力扣(LeetCode)

代码随想录 (programmercarl.com)

后序遍历:

class Solution {public int maxDepth(TreeNode root) {// 如果当前节点为空,深度为0if (root == null) {return 0;}// 递归计算左子树的最大深度int leftDepth = maxDepth(root.left);// 递归计算右子树的最大深度int rightDepth = maxDepth(root.right);// 当前节点的深度为左右子树最大深度 + 1(加上当前节点这一层)return Math.max(leftDepth, rightDepth) + 1;}
}

注意深度是指节点数,因此要+1,不+1算出来的是高度。

559.n叉树的最大深度

559. N 叉树的最大深度 - 力扣(LeetCode)

代码随想录 (programmercarl.com)

class Solution {public int maxDepth(Node root) {if(root == null) return 0;int depth = 0;if(root.children != null){for(Node child : root.children){depth=Math.max(depth, maxDepth(child));}}return depth+1;}
}
  • 111.二叉树的最小深度

111. 二叉树的最小深度 - 力扣(LeetCode)

代码随想录 (programmercarl.com)

和最大深度有所不同,如果只是把最大深度的代码copy过来,将max改为min的话,实例2:[2,null,3,null,4,null,5,null,6] 无法测试通过。

class Solution {/*** 递归法,相比求MaxDepth要复杂点* 因为最小深度是从根节点到最近**叶子节点**的最短路径上的节点数量*/public int minDepth(TreeNode root) {if (root == null) {return 0;}int leftDepth = minDepth(root.left);int rightDepth = minDepth(root.right);if (root.left == null) {return rightDepth + 1;}if (root.right == null) {return leftDepth + 1;}// 左右结点都不为nullreturn Math.min(leftDepth, rightDepth) + 1;}
}
  • 222.完全二叉树的节点个数

和求深度的题非常类似

class Solution {public int countNodes(TreeNode root) {if(root == null){return 0;}int leftNum = countNodes(root.left);int rightNum = countNodes(root.right);return leftNum + rightNum +1;}
}

相关文章:

  • java 对接农行支付相关业务(二)
  • Mac免费软件推荐
  • AI办公自动化:kimi批量新建文件夹
  • 【Python音视频技术】用moviepy实现图文成片功能
  • 【活动】开源与闭源大模型:探索未来趋势的双轨道路
  • 安装WordPress
  • 【Python爬虫】图片验证码的处理
  • DNS 解析过程
  • SpringBoot 微服务中怎么获取用户信息 token
  • 《web应用技术》第9次课后作业
  • Dropbear SSH服务器的安装和优化
  • 视频集中存储LntonCVS视频监控汇聚平台智慧园区应用方案
  • 案例研究|MeterSphere助力万物云构建高效自动化测试平台
  • QA测试开发工程师面试题满分问答25: JVM瓶颈分析,举例说明
  • 读人工智能时代与人类未来笔记17_人类未来
  • ----------
  • Apache的基本使用
  • echarts的各种常用效果展示
  • extjs4学习之配置
  • JavaScript设计模式与开发实践系列之策略模式
  • java中具有继承关系的类及其对象初始化顺序
  • Python 基础起步 (十) 什么叫函数?
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • SOFAMosn配置模型
  • yii2中session跨域名的问题
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 对JS继承的一点思考
  • 对超线程几个不同角度的解释
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 网络应用优化——时延与带宽
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • ​iOS安全加固方法及实现
  • #window11设置系统变量#
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (55)MOS管专题--->(10)MOS管的封装
  • (四) Graphivz 颜色选择
  • (四)模仿学习-完成后台管理页面查询
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (原)本想说脏话,奈何已放下
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)h264中avc和flv数据的解析
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .Net多线程Threading相关详解
  • .NET与 java通用的3DES加密解密方法
  • @ModelAttribute 注解
  • @vue/cli 3.x+引入jQuery
  • [20170705]diff比较执行结果的内容.txt
  • [ActionScript][AS3]小小笔记
  • [C++]18:set和map的使用
  • [CareerCup] 2.1 Remove Duplicates from Unsorted List 移除无序链表中的重复项
  • [hdu 1247]Hat’s Words [Trie 图]