''' LastEditTime: 2026-01-06 10:44:20 ''' from typing importOptional from collections import deque
# # 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
classSolution: defmaxLevelSum(self, root: Optional[TreeNode]) -> int: ans, maximum = 0, -1000000000 nowLayer = 0 q = deque([root]) while q: nowLayer += 1 layerSum = 0 newQ = deque([]) for node in q: layerSum += node.val if node.left: newQ.append(node.left) if node.right: newQ.append(node.right) q = newQ if layerSum > maximum: maximum = layerSum ans = nowLayer return ans
/* * @LastEditTime: 2026-01-06 10:37:44 */ package main
import"container/list"
/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ funcmaxLevelSum(root *TreeNode)int { ans, maximum := 0, -1000000000 nowLayer := 0 q := list.New(); q.PushBack(root) for q.Len() > 0 { nowLayer++ layerSum := 0 for t := q.Len(); t > 0; t-- { nodeElement := q.Front() node := nodeElement.Value.(*TreeNode) q.Remove(nodeElement) layerSum += node.Val if node.Left != nil { q.PushBack(node.Left) } if node.Right != nil { q.PushBack(node.Right) } } if layerSum > maximum { maximum = layerSum ans = nowLayer } } return ans }