【LC】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

题解:

复制代码
/**
 * 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 {
    public int minDepth(TreeNode root) {
        return dfs(root);
    }
 
    private int dfs(TreeNode node) {
        if (node == null) {
            return 0;
        }
        if (node.left == null && node.right == null) {
            return 1;
        }
        int minDepth = Integer.MAX_VALUE;
        if (node.left != null) {
            minDepth = Math.min(dfs(node.left), minDepth);
            
        }
        if (node.right != null) {
            minDepth = Math.min(dfs(node.right), minDepth);
        }
        return minDepth + 1;
    }
}
相关推荐
wearegogog1238 分钟前
基于块匹配的MATLAB视频去抖动算法
算法·matlab·音视频
练习时长一年18 分钟前
Spring内置功能
java·前端·spring
铉铉这波能秀24 分钟前
如何在Android Studio中使用Gemini进行AI Coding
android·java·人工智能·ai·kotlin·app·android studio
_Yoke30 分钟前
Java 枚举多态在系统中的实战演进:从枚举策略到自动注册
java·springboot·策略模式
人生导师yxc32 分钟前
Java中Mock的写法
java·开发语言
十重幻想1 小时前
PTA6-1 使用函数求最大公约数(C)
c语言·数据结构·算法
青岛少儿编程-王老师1 小时前
CCF编程能力等级认证GESP—C++5级—20250927
java·数据结构·c++
毕设源码-郭学长1 小时前
【开题答辩全过程】以 办公管理系统为例,包含答辩的问题和答案
java·eclipse
脑子慢且灵1 小时前
C语言与Java语言编译过程及文件类型
java·c语言·开发语言·汇编·编辑器
是2的10次方啊1 小时前
看完JDK、Spring官方架构图,我发现:大厂的图也就这样!
java