- Maximum Level Sum of a Binary Tree Medium
70
6
Favorite
Share 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:
Input: [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.
Note:
The number of nodes in the given tree is between 1 and 10^4. -10^5 <= node.val <= 10^5
思路:深度优先算法,算出每一层的count,最后取最大的那层
代码:python3
class Solution:
def maxLevelSum(self, root: TreeNode) -> int:
def dfs(node:TreeNode,list:List,level:int):
if not node:
return
if len(list) == level:
list.append(node.val)
else:
list[level] += node.val
dfs(node.left,list,level+1)
dfs(node.right,list,level+1)
list = []
dfs(root,list,0)
return 1+list.index(max(list))