(刷题笔记) Leetcode 111. 二叉树的最小深度

LeetCode111二叉树的最小深度 算法特点及适用场景特点利用递归的思想巧妙地将计算二叉树最小深度的问题分解为计算各个子树的最小深度问题,代码逻辑清晰简洁,符合二叉树这种具有递归结构的数据结构特点,易于理解和实现。通过合理地根据左右子树的情况来确定当前子树的最小深度,能够准确地计算出整棵二叉树的最小深度。时间复杂度为 ,在遍历二叉树节点计算最小深度方面具有较好的效率表现,只要二叉树的节点数量在可接受范围内,都能较快地得出二叉树的最小深度。适用场景。 阅读详情

题目

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

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

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

示例:

给定二叉树 [3,9,20,null,null,15,7],

  3
 / \
9  20
   /  \
  15   7

返回它的最小深度 2.

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-depth-of-binary-tree

解题思路

这个我一开始写的时候以为就和前面二叉树的最大深度一样,只需要把最大换成最小就可以了,不过这样不对。

在答题区看的解释是,要找到递归结束的条件,也就是找到正确的判断叶子结点的条件。

当左右孩子都为NULL时才是叶子结点,当其中一个孩子不是NULL时不是叶子结点,所以要记录到那里的深度。

我建了个qq群,有兴趣的可以加一下575474684,大家可以互相督促一起刷题。

代码(C++)

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    int dfs(TreeNode* root){

        if(root==NULL) return 0;

        if(root->left==NULL&&root->right==NULL) return 1;

        
        int left=dfs(root->left);
        int right=dfs(root->right); 

        if(root->left==NULL||root->right==NULL) return max(left,right)+1;

        return min(left,right)+1;
    }

    int minDepth(TreeNode* root) {

        return dfs(root);

    }
};
UDF学习(二)基础数据类型与常见宏 thread_loop_c (t,d) 必须与begin_c_loop (c,t)同时使用,但begin_c_loop (c,t)不一定与thread_loop_c (t,d)同时使用。同理thread_loop_f(t,d)必须与begin_f_loop (c,t)同时使用,但begin_f_loop (c,t)不一定与thread_loop_f(t,d)同时使用。begin_c_loop (c,t) 在计算域内对网格单元进行循环。c_face_loop (c,t)遍历网格单元上的所有网格面。 阅读详情

相关推荐

YOLOv8工业级增强实战:小目标检测与HDR鲁棒性优化

YOLO(You Only Look Once)作为主流实时目标检测框架,其核心价值在于模块化架构与工程可扩展性。理解YOLOv8的Anchor-Free设计、C2f特征融合机制及Detect头部解耦原理,是实现性能突破的基础。在工业落地中,真实瓶颈往往不是模型版本迭代,而是小目标漏检、高动态范围(HDR)场景适应差、密集遮挡ID断裂等具体问题。通过配置层动态多尺度训练、物理感知数据增强、Neck跨尺度注意力注入、质量感知损失函数升级等七层增强策略,可在不更换主干的前提下显著提升mAP与边缘设备推理效率。本

weixin_32667439的博客 259

【LeetCode】-二叉树

文章目录前言一、二叉树的层序遍历 前言 初识LeetCode与算法,将在此系列文章里面,记录自己的算法学习经历,前期主要是监督自己学习打卡,后期我会将自己对知识的理解,慢慢补充到文章当中,希望大家能在阅读我的文章中,有所收获。该系列文章的刷题顺序以代码随想录为线索。 一、二叉树的层序遍历 题目: 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:[[3],[9,20],[1

银尘博客 8116

从零开始:使用PacBio HiFi和ONT超长读取组装基因组(保姆级教程)

本文提供了一份从零开始的基因组组装保姆级教程,详细讲解了如何融合PacBio HiFi高精度读长与ONT超长读长数据。内容涵盖数据质控、预处理、混合组装策略选择、结果评估及Hi-C支架构建等关键步骤,旨在帮助研究人员获得高质量的完整基因组。

weixin_29266647的博客 204

纯手写输入二叉树并建树输出前序(输入格式为[3,9,20,null,null,15,7])

纯手写输入二叉树并建树输出前序 链接:https://leetcode-cn.com/problems/binary-tree-preorder-traversal/submissions/ 题目简单,但是如果输入的二叉树只是一个字符串,需要自己进行处理与建树,则难度增加很多。 #include<bits/stdc++.h> using namespace std; struct node{ node *left,*right; int value; }; queue<n

GXQ的博客 700

Python RPA 流程自动化快速上手

Python RPA 流程自动化快速上手

看花容易绣花难 1万+

TI MSPM0G3507 循迹小车强制寻黑线代码一

一个基于MSPM0微控制器的循迹小车控制系统。系统通过8路循迹传感器检测黑线位置偏差,使用PID算法计算电机控制量。主程序初始化中断、PWM等外设,在按键触发后进入循迹模式。传感器数据处理函数根据检测到的黑线位置返回偏差值(-7到7),PID控制器根据偏差调整左右电机速度。系统还包含限幅处理、中断服务等模块,实现稳定的自动循迹功能。代码结构清晰,展示了嵌入式系统中传感器数据处理、电机控制和PID算法的典型实现方式。

雾削木的优快云博客 1855

大学计算机python考试题二叉树_leetcode 二叉树相关习题总结

二叉树一种具有天然递归结构的树,一种非线性结构满二叉树:除最后一层无任何子节点外,每一层上的所有结点都有两个子结点二叉树,最后一层是满的完全二叉树:如果二叉树中除去最后一层节点为满二叉树,且最后一层的结点依次从左到右分布平衡二叉树:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1二叉搜索树:又叫二叉排序树,二叉查找树,每个节点的值都大于其左子树的所有节点的值,小于其右子树的所有节点的值l...

weixin_34234442的博客 392

华硕ROG玩家国度安装Ubuntu双系统避坑指南:安全启动密钥那些事儿

本文详细解析了在华硕ROG玩家国度设备上安装Ubuntu双系统时,如何正确处理BIOS中的安全启动(Secure Boot)与密钥管理,避免常见的引导失败和Windows系统无法启动问题。指南提供了从数据备份、启动盘制作到BIOS精细设置(如将OS Type改为Other OS而非简单关闭Secure Boot)以及分区规划的完整流程,确保两个系统都能稳定共存。

weixin_29219189的博客 754

数据结构--知识点16--搜索算法(二叉树)

文章目录一、树的概念1、特点2、树的术语3、树的种类4、树的存储与表示5、常见的树的应用场景二、二叉树1、概念2、性质 一、树的概念 树是一种抽象数据类型(ADT)或是视作这种抽象数据类型的数据结构 1、特点 每个节点有零个或多个子节点 没有父节点的节点称为根节点 每一个非根节点有且只有一个父节点 除了根节点外,每个子节点可以分为**多个不相交(因为都只有一个父节点)**的子树 2、树的术语 节点的度:一个节点含有的子树的个数称为该节点的度 树的度:一棵树中,最大的节点的度称为树的度 叶节点或终端节点

ANingL的博客 3543

2006NOIP普及组真题 4. 数列

从上述推理中,我们发现要输出的幂次和中的第 N 项(也就是幂次和中的序号N),对应的二进制位数和幂次和对应的二进制位数相同。当 k=3 时,k的幂次为1, 3, 9, 27, 81…,即第0位,第2位均为1,转成 k 进制(k=3)时。,即第2位,第3位均为1,转成 k 进制(k=3)时。转成 k 进制(k=3)时的幂次和为。,即第0位,第1位,第2位均为1,(即第0位,第1位,第2位均为1)N=12时,12的二进制是。(即第0位,第2位均为1)(即第2位,第3位均为1)结论:这道题就变成了。

weixin_40252159的博客 1514

QtQuick QML教程(2):qml语法介绍

​ qml一个普通的文本文件,后缀是.qml, 一个qml文件主要由两部分组成:(1) import语句 :这个就像C++中的头文件, 使用 import 导入qml需要的相关模块,可以查询Qt文档进行导入,注意每个版本的Qt模块声明可能都不同,相比于QWidget项目,QtQuick的变动是很大的;(2) QML对象树 :根对象是Window, 然后可以在Window中添加各种控件,例如按钮,文本,菜单等。

琅嬛福地 551

给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。

给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 示例 1: 输入:root = [2,1,3] 输出:true 示例 2: 输入:root = [5,1,4,null,null,3,6] 输出:false 解释:根节点的值是 5 ,但是右子节点的值是 4 。 即欲捭之,贵周;即欲阖之,贵密。周密之贵微,而与道相追。捭之者,料其情也

JUSTLOVEBOY的博客 2567

【Claude Code】Extra inputs are not permitted 报错:代理网关剥离 Beta 标头的修复

通过代理或 LLM 网关连接 Anthropic API 时,Claude Code 报 "Extra inputs are not permitted"?根因是中间件删除了 anthropic-beta 请求标头,导致 Beta 字段被 API 拒绝。本文详解标头转发配置和 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS 回退方案。

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 125

二叉树-二叉树的最小深度

代码随想录-刷题笔记

2301_79841192的博客 281

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

111. 二叉树的最小深度(Leetcode刷题笔记 )

111. 二叉树的最小深度(Leetcode刷题笔记 ) 文章目录111. 二叉树的最小深度(Leetcode刷题笔记 )题目解题代码 C++(DFS递归实现)解题代码C++(BFS)算法效率感悟 题目 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:2 示例 2: 输入:root = [2,null,3,null,4,null,5,

lunan的博客 1117

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

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

LeetCode刷题笔记 111. 二叉树的最小深度

111. 二叉树的最小深度题目要求题解递归迭代版 题目要求 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最小深度 2. 题解 https://git...

g534441921的博客 170

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

LeetCode Java刷题笔记—111. 二叉树的最小深度

LeetCode Java刷题笔记—111. 二叉树的最小深度

终生学习践行者 709

LeetCode Java刷题笔记— 111. 二叉树的最小深度

LeetCode Java刷题笔记— 111. 二叉树的最小深度

终生学习践行者 366

LeetCode刷题笔记第111题:二叉树的最小深度

LeetCode刷题笔记第111题:二叉树的最小深度 想法: 求一棵二叉树的最小深度,即求左右子树的最小深度,通过递归求取左右子树的高度,最小的高度加一即为二叉树的最小深度。其中,获得的左右子树高度也是左右子树的最大高度。 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val #

qq_29787929的博客 125

LeetCode刷题笔记(111,二叉树的最小深度,Easy)

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

qq_40107365的博客 221

LeetCode刷题笔记 111.二叉树的最小深度

总结 不多bb,自己看 dc算是提供一种解题思路吧(逃~) Sample Code class Solution { public static int minDepth(TreeNode root) { if (root == null) return 0; return minDepth1(root); } public static in...

XIIV13的博客 229

Leetcode刷题笔记11:【110】平衡二叉树【111】二叉树的最小深度(STL:pair)

第六天 2021-3-11 每日刷四题 刷题模块:树 - 简单难度 一、【题】平衡二叉树 自顶向下,时间复杂度极高,涉及到许多无用的遍历 时间复杂度:O(n^2) 主要是调用height()多次自顶向下,没有在途中利用返回值。 递归本身时自底向上的 class Solution { public: bool isBalanced(TreeNode* root) { if (!root) return true; bool temp=abs(height(root-&g

MC_XiaoFang的博客 332

力扣刷题笔记16| 104.二叉树的最大深度 、559.n叉树的最大深度、111.二叉树的最小深度、222.完全二叉树的节点个数

完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。输入:root = [1,null,3,2,4,null,5,6]输入:root = [3,9,20,null,null,15,7]给定二叉树 [3,9,20,null,null,15,7],最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。输入:root = [1,2,3,4,5,6]

qq_45348845的博客 134

Leetcode刷题笔记13:二叉树2

方法二:BFS(可以理解为上面层次遍历得到的数组order的len)(自顶向下)方法一:DFS(自底向上)不太好写,递归写法没学会。

qq_51738832的博客 211

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

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

weixin_48941116的博客 1222

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

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

qq_40263592的博客 1197
上一篇: (刷题笔记) Leetcode 733. 图像渲染
下一篇: (刷题笔记) Leetcode 112. 路径总和
Lucky&Happy
博客等级 码龄10年 1粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值