025 · Minimum Depth of Binary Tree

algorithm
Published

May 29, 2026

Problem

给定一棵二叉树的根节点 root

请返回这棵二叉树的最小深度。

二叉树的最小深度,指的是从根节点到最近叶子节点的最短路径上,经过的节点数量。

叶子节点是没有左孩子、也没有右孩子的节点。

例如,下面这棵树的最小深度是 2

      3
     / \
    9   20
       /  \
      15   7

因为从根节点 3 到叶子节点 9,只经过了 2 个节点。

注意,最小深度必须走到叶子节点才算结束。

例如,下面这棵树的最小深度不是 1,也不是 2

    2
     \
      3
       \
        4

根节点 2 没有左子树,但它本身不是叶子节点,所以路径必须继续沿着右子树走到真正的叶子节点 4

Examples

示例 1

Input:  root = [3,9,20,null,null,15,7]
Output: 2

解释:最近的叶子节点是 9,从根节点到它一共经过 2 个节点。

示例 2

Input:  root = [2,null,3,null,4,null,5,null,6]
Output: 5

解释:这棵树只有一条向右延伸的路径,必须一直走到叶子节点 6,所以最小深度是 5

示例 3

Input:  root = []
Output: 0

解释:空树没有节点,所以最小深度是 0

Constraints

  • 树中节点的数量范围是 \([0, 10^5]\)
  • \(-1000 \leq\) Node.val \(\leq 1000\)