leetcode111. 二叉树的最小深度

【简单】力扣算法题解析LeetCode111:二叉树的最小深度 本文介绍了如何计算二叉树的最小深度,即从根节点到最近叶子节点的最短路径节点数。关键点在于正确处理单子树情况,避免错误计算非叶子节点深度。采用BFS层级遍历算法,按层检查节点,首次遇到叶子节点时立即返回当前深度,确保最优时间复杂度O(N)和空间复杂度O(N)。代码使用队列实现层级遍历,通过levelSize跟踪每层节点数,高效处理边界情况如空树和退化链表树。该解法在LeetCode上表现优异,执行用时1ms,内存消耗61.7MB,适用于大规模树结构。 阅读详情
给定一个二叉树,找出其最小深度。

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

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

示例:

给定二叉树 [3,9,20,null,null,15,7],
    3
   / \
  9  20
    /  \
   15   7
  • python
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def minDepth(self, root: TreeNode)-> int:
        if root:
            if root.left and root.right:
                return 1+min(self.minDepth(root.left), self.minDepth(root.right))
            elif root.left:
                return 1+self.minDepth(root.left)
            elif root.right:
                return 1+self.minDepth(root.right)
            else:
                return 1
        else:
            return 0

递归的思想,深度优先

  • Java
    广度优先 深度优先
class Solution {
    //BFS
    public int minDepth1(TreeNode root) {
        if(root==null)
            return 0 ;
        
        Queue<TreeNode> queue=new LinkedList<>();
        queue.offer(root);
        int depth=0;
        
        out:
        while(!queue.isEmpty()){
            depth++;
            int levelSize=queue.size();
            
            for(int i = 0 ; i < levelSize ; i++){
                TreeNode currNode=queue.poll();
                if(currNode.left==null&&currNode.right==null)
                    break out;
                if(currNode.left!=null)
                    queue.offer(currNode.left);
                if(currNode.right!=null)
                    queue.offer(currNode.right);
            }
            
        }
        return depth;
    }
    
    //DFS
    public int minDepth(TreeNode root) {
        if(root==null) return 0 ;
        int left = minDepth(root.left);
        int right = minDepth(root.right);
        
        if(left==0 || right==0)
            return left+right+1;
        else return Math.min(left,right)+1;
        }
}
告别环境配置烦恼:Docker容器化一站式搭建Zephyr RTOS开发环境 本文详细介绍了如何使用Docker容器化技术一站式搭建Zephyr RTOS开发环境,彻底解决环境配置不一致、依赖冲突等难题。通过预构建镜像、数据卷挂载和实战编译示例,帮助开发者快速获得隔离、一致且可复现的嵌入式开发环境,大幅提升开发效率和团队协作体验。 阅读详情

相关推荐

1.STM32H743VGT6最小系统板

此款MCU具备较大算力进行频谱运算,为复杂数据运算提供更高效的保障。该MCU具备REV-V和REV-Y两个型号,后者为新版本。

Audiation88的博客 3800

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

题目描述(简单难度) 返回从根节点到叶子节点最小深度。 解法一 递归 和 104 题 有些像,当时是返回根节点到叶子节点的最大深度。记得当时的代码很简单。 public int maxDepth(TreeNode root) { if (root == null) { return 0; } return Math.max(maxDepth(root.le...

wind_liang的博客 945

【UE4】Hierarchical Instanced Static Mesh——一种速度优于Spawn的实例化物体组件

最近需要在场景中实例出很多个相同的模型,位置也很有规律,并且要对它的位置信息进行更新。 但是一个个拖进去实在太麻烦,就发现了Spawn Actor这个蓝图方法,可以实例一个蓝图类在场景中。 但是由于数量较大,实例化的速度太慢,这时发现了一个神奇的组件——Hierarchical Instanced Static Mesh。 新建一个蓝图类,添加该组件,在细节里添加你要实例化的模型对象。 ...

ColorGalaxy 1万+

力扣LeetCode #111 二叉树的最小深度(MinDepth)

- 题目描述 给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 提示: 叶子节点是指没有子节点的节点。 树中节点数的范围在 [0, 105] 内 -1000 <= Node.val <= 1000 来源:LeetCode - 示例 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:2 示例 2: 输入:root = [2,null,3,null,4,null,5,null,6] 输出:5 - 思路分析 递归求出

weixin_49155948的博客 382

Qt之QSqlTableModel:高效数据库操作与视图绑定的实战指南

本文深入探讨了Qt框架中的QSqlTableModel组件,它作为连接数据库与Qt视图的智能中介,能极大简化数据库的增删改查操作。通过实战代码演示,详细讲解了如何快速构建可编辑的数据表格、理解并设置关键的数据编辑策略(如OnManualSubmit),以及实现数据过滤、排序等高级功能。文章还提供了性能优化、事务处理及常见避坑指南,帮助开发者高效、稳健地开发数据库驱动的桌面应用。

y4z5a6b7的博客 440

Windows安装ros2(Jazzy版本+win10/win11)-4.构建ros2结点

这个位置也是ros2搜索package以及搜索node的路径, 如果把构建好的可执行文件乱动位置的话就找不到节点了,当然如果复制一个可执行文件以及可执行文件-script.py文件, ros2也就会认为你有一个新的节点了,运行这个拷贝的可执行文件程序都是ok的。由于上一个文章给powershell7也增加了启动执行ros2的环境初始化文件local_setup.ps1, 所以我们也可以直接在vscode中运行节点, 此种方式没有经由ros2托管, 缺少其他ros2的附加能力。

weixin_48398592的博客 7114

LeetCode——111. 二叉树的最小深度(递归)

文章目录111. 二叉树的最小深度题目**结构体**1、递归1**思想**代码**2、递归2**思想**代码** 111. 二叉树的最小深度 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/minimum-depth-of-binary-tree 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 给定一个二叉树,找出其最小深度。 题目** 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的

李霁明的博客 300

肿瘤基因组分析实战:VAF、MAF、CCF这些指标到底怎么算?(附Python代码示例)

本文通过Python代码示例,详细解析了肿瘤基因组分析中VAF、MAF和CCF三大核心指标的计算逻辑与应用。文章从VCF文件解析入手,逐步演示了变异等位基因频率、次等位基因频率及癌细胞分数的计算方法,并探讨了拷贝数变异对结果的影响及克隆结构推断的实战流程,为生物信息分析提供实用指南。

silver的专栏 1006

Leetcode 111. 二叉树的最小深度

Leetcode 111. 二叉树的最小深度 难度:简单 用法:DFS 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最小深度 2. 题目的重点在于...

思过留痕 558

中科蓝讯Downloader配置实战:从软硬开关机到ANC降噪的完整指南

本文提供了中科蓝讯Downloader工具的详细配置实战指南。内容涵盖从基础的软硬开关机选择与配置,到核心的EQ音效调试、触摸按键与入耳检测优化,以及高阶的ANC降噪与电源管理设置。旨在帮助开发者快速掌握关键配置项,高效完成蓝牙耳机产品的功能调试与优化。

s4t5u6v7的博客 509

最强游戏投屏串流搭档Sunshine+Moonlight配置方法

因祸得福的是,sunshine作为开源的self-host的服务端,不仅可以代替Novidia的服务端角色,还拓展了moonlight可以服务的主机,非novidia显卡的PC也可以通过这对搭档实现高质量的游戏窜流投屏了。回到moonlight,点击电脑图表,会给你一个Pincode,到Sunshine控制台,菜单点击Pin,输入moonlight给出的pin码。高质量的图像: Moonlight支持高清(HD)和甚至4K分辨率的投屏,同时还提供了对音频的传输支持,确保用户可以享受到高质量的视频和音频。

每日出拳老爷子的博客 1万+

力扣第111题:二叉树的最小深度

给定一个二叉树,找出其最小深度。是从根节点到最近的叶子节点的路径上的节点个数。是指没有子节点的节点。

weixin_48941116的博客 1222

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【每日力扣Leetcode】111-计算一个二叉树的最小深度

力扣题库111,计算一个二叉树的最小深度。 题目链接点这里。 文章目录题目描述解题思路初始答案改进答案注意事项 题目描述 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最小深度 2. 解题思路 本题思路比较简单,利用DFS,迭代从下至上深度依次加1即可。 要注意的

T型人小付的博客 352

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

#力扣 LeetCode111. 二叉树的最小深度 @FDDLC

题目描述: 111. 二叉树的最小深度 - 力扣(LeetCode) (leetcode-cn.com) Java代码一: class Solution { //树中节点数的范围在 [0, 105] 内 public int minDepth(TreeNode root) { if(root==null)return 0; if(root.left==null&&root.right==null)return 1; //叶结点 .

LiuXingchang的博客 408

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

[每日一题]Leetcode 111 二叉树的最小深度

Leetcode 111 二叉树的最小深度题目描述解题思路python代码官方DFS代码官方BFS代码 题目描述 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最小深度 2. 解题思路 1、 直接深度优先遍历,并在每个叶子节点处进行比较保存最小深度。 仔

qq_42246695的博客 321

LeetCode第111题_二叉树的最小深度

给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。叶子节点是指没有子节点的节点。

qq_40263592的博客 1197

力扣(LeetCode) 111: 二叉树的最小深度 - 解法思路

给定一棵二叉树,找到它的最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。最小深度用 BFS 最快:层序遍历遇到的第一个叶子就是答案。DFS 也可以,但无法像 BFS 那样早停。

Yao H. Wang's Blog 283

LeetCode 111:二叉树的最小深度(java)

LeetCode 111:二叉树的最小深度(java) 题目: 解答: /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val...

樊凯的博客 268

leetcode 111. 二叉树的最小深度(js)

leetcode 111. 二叉树的最小深度(js)题目代码 题目 二叉树的最小深度 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:2 示例 2: 输入:root = [2,null,3,null,4,null,5,null,6] 输出:5 代码 var minDepth = function(root) { // let mi

wszhang_的博客 428

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

【代码】力扣-111.二叉树的最小深度。

qh991207的博客 159

leetcode 111. 二叉树的最小深度

111. 二叉树的最小深度 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 示例: 给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最小深度 2. 1.递归写法 四个出口条件: 1.此时参数...

fang156239305的博客 178

Leetcode111. 二叉树的最小深度

Leetcode111. 二叉树的最小深度 题目: 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7],         3         /  \ &nb...

会流泪de鱼的博客 147

力扣leetcode 111. 二叉树的最小深度 java

/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { publ...

izhxxx的博客 204

LeetCode 111. 二叉树的最小深度

题目链接:LeetCode 111. 二叉树的最小深度 题意: 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 解题思路: 使用BFS查看层次 /** * Definition for a binary tree node. * class TreeNode { * public $val = null; * public $left = null; * publ...

error311的博客 234

Leetcode 111. 二叉树的最小深度

Leetcode 111. 二叉树的最小深度 原题链接 广度优先 class Solution { // 内部类,记录节点信息和当前节点的深度 static class QueueNode { TreeNode treeNode; int depth; public QueueNode(TreeNode node, int depth) { this.treeNode = node; this

Loser_you的博客 296

111. 二叉树的最小深度 -力扣(leetCode)JS解法

⚡️111. 二叉树的最小深度⚡️ 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 示例 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 ⚡️分析⚡️ 找深度最浅的叶子结点

weixin_53893220的博客 434
上一篇: NLP-task2
下一篇: leetcode150. 逆波兰表达式求值
程序员椰子橙
博客等级 码龄9年 46粉丝 163原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值