All files / leetCode 0107.ts

100% Statements 17/17
100% Branches 6/6
100% Functions 1/1
100% Lines 16/16

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31          3x   3x 1x   2x   2x 4x 4x   4x 6x 6x 6x 2x 6x 2x     4x     2x    
import type { TreeNode } from './Tree'
 
export default function levelOrderBottom(
  root: TreeNode<number> | null,
): number[][] {
  const res: number[][] = []
 
  if (root === null)
    return res
 
  const queue = [root]
 
  while (queue.length > 0) {
    const len = queue.length
    const row: number[] = []
 
    for (let i = 0; i < len; i++) {
      const node = queue.shift() as TreeNode<number>
      row.push(node.val)
      if (node.left !== null)
        queue.push(node.left)
      if (node.right !== null)
        queue.push(node.right)
    }
 
    res.unshift(row)
  }
 
  return res
}