【leetcode】1161. Maximum Level Sum of a Binary Tree
题目如下:
Given the
rootof a binary tree, the level of its root is1, the level of its children is2, and so on.Return the smallest level
Xsuch that the sum of all the values of nodes at levelXis 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
1and10^4.-10^5 <= node.val <= 10^5
解题思路:没什么好说的,依次计算出每一层的值,求出最大即可。
代码如下:
# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution(object): dic = {} def recursive(self,node,level): self.dic[level] = self.dic.setdefault(level,0) + node.val if node.left != None: self.recursive(node.left,level+1) if node.right != None: self.recursive(node.right,level+1) def maxLevelSum(self, root): """ :type root: TreeNode :rtype: int """ self.dic = {} self.recursive(root,1) max_val = 0 res = 0 for key,val in self.dic.iteritems(): if max_val < val: max_val = val res = key return res
浙公网安备 33010602011771号