Skip to content

力扣链接:102.二叉树的层序遍历

难度:⭐⭐

解题关键词:二叉树层序遍历队列

解题思路:常规二叉树层序遍历,用队列进行实现。

typescript
function levelOrder(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;
}