Datastructure and Algorithm: DAY 61. Leetcode: 226/2726
Description
Given the root of a binary tree, the level of its root is 1, the level of its children is 2, and so on. Return the smallest level x such that the sum of all the values of nodes at level x is maximal.
Example 1:
1 2 3 4 5 6 7
Input: root = [1,7,0,7,-8,null,null] Output: 2 Explanation: Level 1 sum = 1. Level 2 sum = 7 + 0 = 7. Level 3 sum = 7 + -8 = -1. So we return the level with the maximum sum which is level 2.
# 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 from collections import deque
classSolution: defmaxLevelSum(self, root: Optional[TreeNode]) -> int: queue = deque([root]) maxi = float('-inf') level = 1 ans = 0 while queue: l = len(queue) summ = 0 for _ inrange(l): cur = queue.popleft() summ += cur.val if cur.left: queue.append(cur.left) if cur.right: queue.append(cur.right) if summ > maxi: maxi = summ ans = level level+=1 return ans