> Uploading knowledge... _
[░░░░░░░░░░░░░░░░░░░░░░░░] 0%
blog logo
> CHICIO CODING_Pixels. Code. Unplugged.

Binary Tree Level Order Traversal

Leetcode Problem 102: Binary Tree Level Order Traversal

Problem Summary

Given the root of a binary tree, return the level-order traversal of its nodes' values — i.e., from left to right, level by level. Return the result as a list of lists, one per level.

Constraints:

  • The tree has between 0 and 2,000 nodes.
  • Node values are integers in the range [-1,000, 1,000].

Techniques

  • Tree
  • Breadth-First Search
  • Binary Tree

Solution

export class TreeNode {
    val: number
    left: TreeNode | null
    right: TreeNode | null

    constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
        this.val = (val === undefined ? 0 : val)
        this.left = (left === undefined ? null : left)
        this.right = (right === undefined ? null : right)
    }
}

function levelOrder(root: TreeNode | null): number[][] {
    if (!root) {
        return []
    }

    let queue: TreeNode[] = [root]
    let levels: number[][] = []

    while (queue.length > 0) {
        let levelSize = queue.length
        const level = []

        while (levelSize > 0) {
            let current = queue.shift()!

            if (current.left) {
                queue.push(current.left)
            }

            if (current.right) {
                queue.push(current.right)
            }

            level.push(current.val)
            levelSize--
        }

        levels.push(level)
    }

    return levels
};