zoukankan      html  css  js  c++  java
  • 【leetcode】1161. Maximum Level Sum of a Binary Tree

    题目如下:

    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:

    1. The number of nodes in the given tree is between 1 and 10^4.
    2. -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
            
  • 相关阅读:
    前端cookie操作用到的一些小总结
    sublime 官方正版,自己用的插件配置,最轻量级安装流程
    Node.js 终端输出颜色设置
    Mac中设置别名 (转载)
    Swift 3 使用objc_setAssociatedObject
    ruby 笔记
    编程模式
    rvm pod gem 等常用命令
    node.js 笔记
    Node.js 对象合并
  • 原文地址:https://www.cnblogs.com/seyjs/p/11376641.html
Copyright © 2011-2022 走看看