# [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;
}