题解 | #重量级的一层#

重量级的一层

https://www.nowcoder.com/practice/193372871b09426ab9ea805f0fd44d5c

  • 题目考察的知识点 : 二叉树的层次遍历
  • 题目解答方法的文字分析:
  1. 使用队列进行层序遍历,根节点入队,遍历队列,取出一层的节点,计算这一层的节点值总和
  2. 将这一层节点的子节点入队,进行下一层的遍历
  3. 记录每一层的节点值总和,同时记录对应的层数,遍历结束后,返回总和最大的那一层的层数,如果有多层总和相同,返回层数最大的那一层
  • 本题解析所用的编程语言:Python
  • 完整且正确的编程代码
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param root TreeNode类 
# @return int整型
#
from collections import deque
class Solution:
    def maxLevelSum(self , root: TreeNode) -> int:
        if not root:
            return 0
    
        queue = deque([root])
        max_sum = root.val
        max_level = 1
        cur_level = 1
        while queue:
            level_sum = 0
            for _ in range(len(queue)):
                node = queue.popleft()
                level_sum += node.val
                if node.left:
                    queue.append(node.left)
                if node.right:
                    queue.append(node.right)
            if level_sum > max_sum:
                max_sum = level_sum
                max_level = cur_level

            cur_level += 1
            
        return max_level
牛客高频top202题解系列 文章被收录于专栏

记录刷牛客高频202题的解法思路

全部评论

相关推荐

03-03 23:12
已编辑
北京邮电大学 Java
后测速成辅导一两个月...:写挺好的,建议尽早投简历,抢在hc多的时候开始面试
你的简历改到第几版了
点赞 评论 收藏
分享
在笔试的大西瓜很矫健:校招数分不用想了,这经历和学历都不够用,大厂更别想,初筛都过不了,说点不好听的小厂数分都进不去(小厂也是假数分),要两个对口实习+3个项目(或者3+2),而且要有含金量才能补一点你的学历劣势。 建议刷实习,社招找数分,校招看运气,能入行业就行,可以运营转数分
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务