【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;
    }
}
相关推荐
l1t7 小时前
用SQL求解advent of code 2024年23题
数据库·sql·算法
全干engineer7 小时前
idea拉取github代码 -TLS connect error 异常问题
java·github·intellij-idea
10岁的博客7 小时前
二维差分算法高效解靶场问题
java·服务器·算法
轻微的风格艾丝凡7 小时前
锂电池 SOC 估计技术综述:成熟算法、新颖突破与车企应用实践
算法·汽车
Codeking__8 小时前
动态规划算法经典问题——01背包问题
算法·动态规划
R-G-B8 小时前
归并排序 (BM20 数组中的逆序对)
数据结构·算法·排序算法
少许极端8 小时前
算法奇妙屋(十二)-优先级队列(堆)
数据结构·算法·leetcode·优先级队列··图解算法
百***93508 小时前
Tomcat报404问题解决方案大全(包括tomcat可以正常运行但是报404)
java·tomcat
qq_281317478 小时前
kubernetes(k8s)-pod生命周期
java·容器·kubernetes
IT界的奇葩8 小时前
代码规范 spring-javaformat使用
java·spring·代码规范