news 2026/1/2 21:37:08

算法---LeetCode 111. 二叉树的最小深度

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
算法---LeetCode 111. 二叉树的最小深度

1. 题目

原题链接
给定一个二叉树,找出其最小深度。

最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

说明:叶子节点是指没有子节点的节点。

示例 1:

输入:root = [3,9,20,null,null,15,7]
输出:2
示例 2:

输入:root = [2,null,3,null,4,null,5,null,6]
输出:5

提示:

树中节点数的范围在 [0, 105] 内
-1000 <= Node.val <= 1000

2. 题解

2.1 解法1: 递归

主要思想

这道题的关键是搞清楚递归结束条件

叶子节点的定义是左孩子和右孩子都为 null 时叫做叶子节点
当 root 节点左右孩子都为空时,返回 1
当 root 节点左右孩子有一个为空时,返回不为空的孩子节点的深度
当 root 节点左右孩子都不为空时,返回左右孩子较小深度的节点值

classSolution{publicintminDepth(TreeNoderoot){if(root==null)return0;if(root.left==null&&root.right==null)return1;intleft=minDepth(root.left);intright=minDepth(root.right);if(root.left==null)returnright+1;if(root.right==null)returnleft+1;returnMath.min(left,right)+1;}}

参考: 二叉树的最小深度-理解递归结束条件

2.2 解法2: BFS

classSolution{publicintminDepth(TreeNoderoot){if(root==null)return0;Queue<TreeNode>queue=newLinkedList<>();queue.offer(root);intdepth=0;while(!queue.isEmpty()){intsize=queue.size();depth++;for(inti=0;i<size;i++){TreeNodepoll=queue.poll();if(poll.left==null&&poll.right==null){returndepth;}if(poll.left!=null){queue.offer(poll.left);}if(poll.right!=null){queue.offer(poll.right);}}}return0;}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/29 13:03:56

66、Windows系统网络、安全与性能优化全解析

Windows系统网络、安全与性能优化全解析 1. TCP/IP端口基础 在网络通信中,TCP/IP端口起着关键作用。当我们使用网页浏览器或电子邮件程序连接到互联网上的其他计算机时,实际上是通过TCP/IP端口进行通信的。若PC上运行着网页服务器或FTP服务器,它会开放特定端口,以便其他计…

作者头像 李华
网站建设 2025/12/26 13:24:47

面向所有人的Python编程——函数

&#x1f3af; 函数的核心理念&#xff1a;存储与重用&#x1f4cc; 核心原则&#xff1a;DRY&#xff08;Dont Repeat Yourself&#xff09;避免重复&#xff1a;相同的代码只写一次&#xff0c;多次使用提高效率&#xff1a;减少代码量&#xff0c;便于维护和更新增强可读性&…

作者头像 李华
网站建设 2025/12/22 2:08:18

面向所有人的Python编程——循环迭代

&#x1f504; 循环&#xff1a;自动化重复任务&#x1f4cc; 循环的核心价值计算机的优势&#xff1a;重复相同任务而不出错人类的劣势&#xff1a;重复任务容易出错且效率低编程目标&#xff1a;将重复任务自动化&#x1f501; while循环&#xff1a;不确定循环&#x1f4dd;…

作者头像 李华
网站建设 2025/12/22 2:03:28

Excalidraw描绘区块链结构:区块链接示意

Excalidraw描绘区块链结构&#xff1a;区块链接示意 你有没有经历过这样的场景&#xff1f;在一次紧张的架构评审会上&#xff0c;开发、产品和安全三方围绕“区块链如何防篡改”争论不休——每个人脑中的模型都不一样&#xff0c;却谁也说不清。最终&#xff0c;有人掏出一张草…

作者头像 李华
网站建设 2025/12/22 2:00:06

Excalidraw构建库存管理系统:补货预警机制图示

Excalidraw构建库存管理系统&#xff1a;补货预警机制图示 在一次产品评审会上&#xff0c;团队正为“库存低于多少时该触发采购”争论不休。产品经理说“感觉快没了就得提醒”&#xff0c;运营认为“至少留两周销量”&#xff0c;而开发则追问&#xff1a;“那系统怎么判断&a…

作者头像 李华