LeetcodeJun 06, 2025

Binary Tree Level Order Traversal

Hazrat Ali

Leetcode

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).

 

Example 1:

Input: root = [3,9,20,null,null,15,7]
Output: [[3],[9,20],[15,7]]

Example 2:

Input: root = [1]
Output: [[1]]

Example 3:

Input: root = []
Output: []


Solution
/**
 * @param {TreeNode} root
 * @return {number[][]}
 */
const levelOrder = root => {
  if (!root) {
    return [];
  }

  const result = [];
  const queue = [root, null];
  let level = [];

  while (queue.length > 0) {
    const node = queue.shift();

    if (node) {
      level.push(node.val);

      if (node.left) {
        queue.push(node.left);
      }

      if (node.right) {
        queue.push(node.right);
      }
    } else {
      result.push(level);

      if (queue.length > 0) {
        level = [];
        queue.push(null);
      }
    }
  }

  return result;
};


Comments