# [111] 二叉树的最小深度

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

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

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

示例:

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

返回它的最小深度 2.

这道题经典的BFS题型。从BFS的角度来考虑,只要出现某一层中的节点为叶子节点,那么直接返回当前所在层级即可。

function minDepth(root: TreeNode | null): number {
  if (root === null) return 0;

  let res = 0;
  const queue: TreeNode[] = [];
  queue.unshift(root);

  while (queue.length > 0) {
    // 对于每一层,进行一次遍历,入队子节点操作
    res += 1;
    let count = queue.length;
    while (count) {
      const curr = queue.pop();
      // 此时为叶子节点,直接返回结果
      if (!curr.left && !curr.right) {
        return res;
      }
      if (curr.left) {
        queue.unshift(curr.left);
      }
      if (curr.right) {
        queue.unshift(curr.right);
      }
      count -= 1;
    }
  }
  return res;
}