intermediate
Breadth-first by levels
Complete the level-order traversal — the queue that walks a binary tree one row at a time.
interface TreeNode {
value: number
left?: TreeNode
right?: TreeNode
}
/**
* Returns the tree's values grouped by depth — index 0 is the root's row.
*/
export function levelOrder(root: TreeNode | undefined): number[][] {
if (root === undefined) return []
const levels: number[][] = []
const _____: TreeNode[] = [root]
while (queue.length > 0) {
const row: number[] = []
// Everything queued before this round started is the current row.
const rowSize = queue.______
for (let i = 0; i < rowSize; i++) {
const node = queue._____()
if (node === undefined) break
row.push(node.value)
if (node.left !== undefined) queue.push(node.left)
if (node.right !== undefined) queue.push(node.right)
}
levels.push(row)
}
return levels
}0/3 filled tab moves · Ctrl+↵ submits · Ctrl+Shift+↵ runsstarter code