题解 | #重量级的一层#
重量级的一层
https://www.nowcoder.com/practice/193372871b09426ab9ea805f0fd44d5c
- 题目考察的知识点 : 二叉树的层次遍历
- 题目解答方法的文字分析:
- 使用队列进行层序遍历,根节点入队,遍历队列,取出一层的节点,计算这一层的节点值总和
- 将这一层节点的子节点入队,进行下一层的遍历
- 记录每一层的节点值总和,同时记录对应的层数,遍历结束后,返回总和最大的那一层的层数,如果有多层总和相同,返回层数最大的那一层
- 本题解析所用的编程语言: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题的解法思路

谷川联行工作强度 24人发布