【Leetcode】111. 二叉树的最小深度

2023-11-15

题目描述

在这里插入图片描述

题解

递归遍历,记录深度,然后贪心地去更新结果(取min())。

考虑到这里还不够,需要加一层叶节点的判断,必须当前节点是叶子结点才能够做res的更新。否则可能会碰到这种情况:根结点左边没有子树,根结点右边有子树,结果递归下去发现深度是1(只考虑了左边没子树的情况,没有考虑到此时并不是叶子结点,而是根结点)

执行用时:6 ms, 在所有 Java 提交中击败了57.73%的用户

内存消耗:58.9 MB, 在所有 Java 提交中击败了22.96%的用户

通过测试用例:52 / 52

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    private int res = Integer.MAX_VALUE;
    
    public int minDepth(TreeNode root) {
        if (root == null)
            return 0;
        depth(root, 0);
        return res;
    }
    
    public void depth(TreeNode root, int depth) {
        if (root == null) {
            return;
        }
        if (root.left == null && root.right == null) {
            res = Math.min(res, depth + 1);
        }
        // System.out.println(root.val + " " + depth);
        depth(root.left, depth + 1);
        depth(root.right, depth + 1);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Leetcode】111. 二叉树的最小深度 的相关文章

随机推荐

  • Hive Sql 最强最完整学习笔记

    一 DDL语句 数据定义语句 对数据库的操作 包含创建 修改数据库 对数据表的操作 分为内部表及外部表 分区表和分桶表 二 DQL语句 数据查询语句 单表查询 关联查询 hive函数 包含聚合函数 条件函数 日期函数 字符串函数等 行转列及
  • 线程安全list_不安全的集合类学习子笔记

    list 不安全类是什么 不安全类是指在多线程并发的时候不能保证数据正确性的类 通常是由于这些类并没有加锁造成的 为什么不设计成加锁的 其实 在list之前有个集合类vector 它是内部加锁 它是一个线程安全类 不优先使用它的原因是加锁可
  • kali firefox gah. your tab just crashed. 更新Firefox

    kali firefox gah your tab just crashed we can help choose restore this tab to reload the page 这个问题我大概八月份的一个晚上也发生过当时是kali
  • Robotframework 之exe安装(二)

    Robotframework 之pip安装 一 Robotframework 之exe安装 二 Robotframework安装过程中错误解决方案 三 一 exe安装步骤 1 python 2 7 10 amd64 msi 2 安装Robo
  • R 语言 wordcloud 与 wordcloud2 包的安装及参数说明

    一 wordcloud安装说明 install packages wordcloud 二 wordcloud2安装说明 我在RStudio编辑器直接输入 if require devtools install packages devtoo
  • Flutter中屏幕自适应(iPhone iPad Windows)

    flutter屏幕自适应 文章目录 flutter屏幕自适应 适配手机和平板的重要性 一 Sizer插件的使用 二 使用步骤 1 准备工作 2 正常使用的样式 3 判断平台设备的样式 总结 适配手机和平板的重要性 这是未进行屏幕适配的界面
  • HC-05通信的正确打开方式

    1 蓝牙模块RX TX 5 VCC分别与串口线TX RX 5 GND连接 2 打开串口助手 设置串口 波特率9600 打开串口 3 按一下蓝牙模块上的微动开关 4 在串口助手上发送AT PC端就会有OK回应 其它相应指令也会有相同回应了 我
  • Eclipse中配置Tomcat容器

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 问题描述 独立启动tomcat后在浏览器输入http localhost 8080可以成功访问到tomcat主页 但是当在Eclipse中启动tomcat时 虽然启动成功
  • my97日期控件插件的开发与编写

    my97日期控件插件的开发与编写 扩展一个easyui 的my97 控件 function undefined function create target var state data target my97 opts state opt
  • ERROR: Could not build wheels for hdbscan, which is required to install pyproject.toml-based project

    pip安装hdbscan报错 ERROR Failed building wheel for hdbscan Failed to build hdbscan ERROR Could not build wheels for hdbscan
  • iOS开发中的网络请求

    转载自http www cocoachina com ios 20140919 9691 html 今天来说说关于iOS开发过程中的网络请求 关于网络请求的重要性我想不用多说了吧 对于移动客户端来说 网络的重要性不言而喻 常见的网络请求有同
  • N: 无法安全地用该源进行更新,所以默认禁用该源。

    解决方法 cd etc apt sources list d 进入该目录下 删除该目录下的文件 然后更换源 sudo apt get update
  • m计划-python

    题目描述 小明是个鹅卵石收藏者 从小到大他一共收藏了 n块鹅卵石 编号分别为 1 n 价值分别为 a1 a2 an 这天他乘船准备去往蓝桥王国 然而天有不测风云 小明所在的海域下起了暴雨 很快小明船上的积水越来越多 为了防止沉船 小明不得不
  • 有关 Rust 交叉编译的一些思路 (仅供参考)

    近来 使用 Rust 语言开发的应用程序渐渐融入了开发者以及普通用户的日常生活 它们不仅出现在我们常用的工作平台上 不少嵌入式设备或者云服务器上也多见它们的身影 Rust 是一种需要编译的语言 且一些 crate 仍需要 C C 的构建环境
  • 多个Makefile文件编译,Makefile多目标编译和多层次编译

    多个Makefile文件编译 Makefile多目标编译和多层次编译 README Makefile多目标编译 Makefile多层次编译 a文件夹 b文件夹 include文件夹 obj文件夹 多个Makefile文件编译 相关截图 ma
  • 论文集计算机,计算机学年论文集 计算机学年论文参考文献哪里找

    汇总了 100个 与计算机学年相关论文参考文献 为广大毕业生和职称者推荐计算机学年论文集 解决在校大学生不知个计算机学年论文参考文献哪里找等相关问题 一 计算机学年论文参考文献范文 1 试析西点军校计算机基础课程的改革 薛源 2006200
  • kudu clickhouse 添加字段删除字段

    impala 或hive 给指定kudu库中的表添加列 修改列并调整列位置 添加列 alter TABLE fact cpu supply category add columns supplier name string COMMENT
  • C语言—数据类型

    文章目录 1 基本数据类型 2 数组 字符数组和字符串 2 1 数组 2 2 字符数组与字符串 3 枚举类型 4 结构体和共用体 4 1 结构体 4 2 共用体 5 拓展 5 1 结构体内存分配 5 1 1 以结构体中占字节数最大的数据类型
  • IDEA和GIT关于文件中LF和CRLF问题

    问题描述 项目软件安装shell脚本上git仓库管理 但拉取后 上linux运行报错 问题思考 根据描述信息可以查看到 r字样 初步判别为换行符导致 1 将脚本文件移动至notepad 中 通过视图 gt 显示符号 gt 显示所有符号 一顿
  • 【Leetcode】111. 二叉树的最小深度

    题目描述 题解 递归遍历 记录深度 然后贪心地去更新结果 取min 考虑到这里还不够 需要加一层叶节点的判断 必须当前节点是叶子结点才能够做res的更新 否则可能会碰到这种情况 根结点左边没有子树 根结点右边有子树 结果递归下去发现深度是1