662. Maximum Width of Binary Tree (Medium) - TengnanYao/daily_leetcode GitHub Wiki
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def widthOfBinaryTree(self, root: Optional[TreeNode]) -> int:
result = 1
q = [(root, 1)]
while q:
result = max(result, q[-1][1] - q[0][1] + 1)
temp = []
for node, i in q:
if node.left:
temp.append((node.left, 2 * i))
if node.right:
temp.append((node.right, 2 * i + 1))
q = temp
return result