LeetcodeJul 02, 2025

Maximum Width of Binary Tree

Hazrat Ali

Leetcode

Given the root of a binary tree, return the maximum width of the given tree.

The maximum width of a tree is the maximum width among all levels.

The width of one level is defined as the length between the end-nodes (the leftmost and rightmost non-null nodes), where the null nodes between the end-nodes that would be present in a complete binary tree extending down to that level are also counted into the length calculation.

It is guaranteed that the answer will in the range of a 32-bit signed integer.

 

Example 1:

Input: root = [1,3,2,5,3,null,9]
Output: 4
Explanation: The maximum width exists in the third level with length 4 (5,3,null,9).

Example 2:

Input: root = [1,3,2,5,null,null,9,6,null,7]
Output: 7
Explanation: The maximum width exists in the fourth level with length 7 (6,null,null,null,null,null,7).

Example 3:

Input: root = [1,3,2,5]
Output: 2
Explanation: The maximum width exists in the second level with length 2 (3,2).


Solution
/**
 * @param {TreeNode} root
 * @return {number}
 */
const widthOfBinaryTree = root => {
  if (!root) {
    return 0;
  }

  const q1 = [root];
  const q2 = [0];
  let max = 1;

  while (q1.length > 0) {
    const size = q1.length;
    let left = 0;
    let right = 0;

    for (let i = 0; i < size; i++) {
      const node = q1.shift();
      const index = q2.shift();

      if (i === 0) {
        left = index;
      }

      if (i === size - 1) {
        right = index;
      }

      if (node.left) {
        q1.push(node.left);
        q2.push(index * 2);
      }

      if (node.right) {
        q1.push(node.right);
        q2.push(index * 2 + 1);
      }
    }

    max = Math.max(max, right - left + 1);
  }

  return max;
};




Comments