zoukankan      html  css  js  c++  java
  • 【leetcode】1302. Deepest Leaves Sum

    题目如下:

    Given a binary tree, return the sum of values of its deepest leaves.

    Example 1:

    Input: root = [1,2,3,4,5,null,6,7,null,null,null,null,8]
    Output: 15

    Constraints:

    • The number of nodes in the tree is between 1 and 10^4.
    • The value of nodes is between 1 and 100.

    解题思路:我的方法是做两次遍历,第一次求树的最大深度,第二次求和。

    代码如下:

    # 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):
        level = 0
        leavesSum = 0
        def getMaxLevel(self,node,level):
            self.level = max(self.level,level)
            if node == None:
                return
            if node.left != None:
                self.getMaxLevel(node.left,level + 1)
            if node.right != None:
                self.getMaxLevel(node.right,level + 1)
        def calc(self,node,level):
            if level == self.level:
                self.leavesSum += node.val
            if node == None:
                return
            if node.left != None:
                self.calc(node.left,level + 1)
            if node.right != None:
                self.calc(node.right,level + 1)
    
    
        def deepestLeavesSum(self, root):
            """
            :type root: TreeNode
            :rtype: int
            """
            self.leavesSum = 0
            self.level = 0
            self.getMaxLevel(root,0)
            self.calc(root,0)
            return self.leavesSum
            
  • 相关阅读:
    Windows10 iis10 arr webfarm
    两个command的疑惑
    关于controller和apicontroller的跨域实现过滤器的不同
    抽象工厂
    c# 字体库跨域解决
    c# 父类的引用指向子类的实例
    垂直居中
    扇形导航
    2D变换
    京东放大镜效果
  • 原文地址:https://www.cnblogs.com/seyjs/p/12114162.html
Copyright © 2011-2022 走看看