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

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

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

思路

  1. 广度优先迭代
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var minDepth = function (root) {
if (!root) {
return 0
}
let curNodes = [root]
let depth = 0
while (curNodes.length > 0) {
++depth
const nextNodes = []
for (const node of curNodes) {
if (!node.left && !node.right) {
return depth
}
if (node.left) {
nextNodes.push(node.left)
}
if (node.right) {
nextNodes.push(node.right)
}
}
curNodes = nextNodes
}
return depth
}