给定一个二叉树,找出其最小深度。
最小深度是从根节点到最近叶子节点的最短路径上的节点数量。
说明:叶子节点是指没有子节点的节点。
思路
- 广度优先迭代
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 }
|