29 lines
711 B
JavaScript
29 lines
711 B
JavaScript
/**
|
|
* Definition for a binary tree node.
|
|
* function TreeNode(val) {
|
|
* this.val = val;
|
|
* this.left = this.right = null;
|
|
* }
|
|
*/
|
|
/**
|
|
* @param {TreeNode} root
|
|
* @return {number[][]}
|
|
*/
|
|
export const levelOrder = function (root) {
|
|
const res = []
|
|
const queue = [root]
|
|
while (queue.length) { // BFS
|
|
const tmp = []
|
|
const leave = queue.length // 记录这一层有几个
|
|
for (let i = 0; i < leave; i++) { // 一次性把固定个数的队列执行完
|
|
const node = queue.shift()
|
|
if (node && node.left) queue.push(node.left)
|
|
if (node && node.right) queue.push(node.right)
|
|
if (node) tmp.push(node.val)
|
|
}
|
|
if (tmp.length) res.unshift(tmp)
|
|
}
|
|
|
|
return res
|
|
}
|