/** * Definition for a binary tree node. * class TreeNode { * val: number * left: TreeNode | null * right: TreeNode | null * constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * this.right = (right===undefined ? null : right) * } * } */ function minDepth(root: TreeNode | null): number { if (!root) { return 0; } const q = [root]; let ans = 0; while (1) { ++ans; for (let n = q.length; n; --n) { const node = q.shift(); if (!node.left && !node.right) { return ans; } if (node.left) { q.push(node.left); } if (node.right) { q.push(node.right); } } } }