力扣链接:107.二叉树的层序遍历II
难度:⭐⭐
解题关键词:二叉树
、层序遍历
、队列
解题思路:在常规二叉树层序遍历上,最后使用 reverse 方法颠倒一下顺序。
typescript
function levelOrderBottom(root: TreeNode | null): number[][] {
// 如果 root 为空,直接返回空数组
if (root === null) return [];
// 队列
const queue: TreeNode[] = [root];
// 结果
const result: number[][] = [];
// 当队列不为空时
while (queue.length) {
// 保存当前层级的 node 个数
let size = queue.length;
// 当前层级的 node 值
const curLayerValues: number[] = [];
while (size--) {
// 出队
const node = queue.shift();
curLayerValues.push(node.val);
// 左节点
if (node.left) queue.push(node.left);
// 右节点
if (node.right) queue.push(node.right);
}
result.push(curLayerValues);
}
// 翻转顺序
return result.reverse();
}