# 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 maxLevelSum(self, root: Optional[TreeNode]) -> int:
queue = [root]
ans = level = 1
max_sum = float('-inf')
while queue:
level_len, level_sum = len(queue), 0
for _ in range(level_len):
node = queue.pop(0)
level_sum += node.val
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
if max_sum < level_sum:
max_sum = level_sum
ans = level
level += 1
return ans
BFS 直接 level by level 掃 sum 即可