二叉树层序遍历中,最大层内元素和是多少?

2026-05-21 13:501阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计376个文字,预计阅读时间需要2分钟。

二叉树层序遍历中,最大层内元素和是多少?

给定一个二叉树的根节点root,要求返回树内元素之和以及最大层数的层级编号。

输入示例:python树的结构class TreeNode: def __init__(self, val=0, left=None, right=None): self.val=val self.left=left self.right=right

树的节点值tree=[1, 2, 3, 4, 5, 6, 7, 8, 9]

构建树root=TreeNode(1)root.left=TreeNode(2)root.right=TreeNode(3)root.left.left=TreeNode(4)root.left.right=TreeNode(5)root.right.left=TreeNode(6)root.right.right=TreeNode(7)root.left.left.left=TreeNode(8)root.left.left.right=TreeNode(9)

二叉树层序遍历中,最大层内元素和是多少?

测试函数def tree_info(root): return sum_values(root), max_level(root)

输出结果sum_values, max_level=tree_info(root)print(f元素之和: {sum_values}, 最大层数的层级编号: {max_level})

输出结果:元素之和: 45, 最大层数的层级编号: 3

给你一个二叉树的根节点 root。设根节点位于二叉树的第 1 层,而根节点的子节点位于第 2 层,依此类推。请返回层内元素之和 最大 的那几层(可能只有一层)的层号,并返回其中 最小 的那个。

 

层序遍历:

# Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def maxLevelSum(self, root: Optional[TreeNode]) -> int: queue = collections.deque() queue.append(root) level = 0 bigest_sum = root.val bigest_level = 1 while queue: level += 1 level_sum = 0 length = len(queue) for i in range(length): rt = queue.popleft() if rt.left: queue.append(rt.left) if rt.right: queue.append(rt.right) level_sum += rt.val if level_sum > bigest_sum: bigest_sum = level_sum bigest_level = level return bigest_level
标签:层序遍历

本文共计376个文字,预计阅读时间需要2分钟。

二叉树层序遍历中,最大层内元素和是多少?

给定一个二叉树的根节点root,要求返回树内元素之和以及最大层数的层级编号。

输入示例:python树的结构class TreeNode: def __init__(self, val=0, left=None, right=None): self.val=val self.left=left self.right=right

树的节点值tree=[1, 2, 3, 4, 5, 6, 7, 8, 9]

构建树root=TreeNode(1)root.left=TreeNode(2)root.right=TreeNode(3)root.left.left=TreeNode(4)root.left.right=TreeNode(5)root.right.left=TreeNode(6)root.right.right=TreeNode(7)root.left.left.left=TreeNode(8)root.left.left.right=TreeNode(9)

二叉树层序遍历中,最大层内元素和是多少?

测试函数def tree_info(root): return sum_values(root), max_level(root)

输出结果sum_values, max_level=tree_info(root)print(f元素之和: {sum_values}, 最大层数的层级编号: {max_level})

输出结果:元素之和: 45, 最大层数的层级编号: 3

给你一个二叉树的根节点 root。设根节点位于二叉树的第 1 层,而根节点的子节点位于第 2 层,依此类推。请返回层内元素之和 最大 的那几层(可能只有一层)的层号,并返回其中 最小 的那个。

 

层序遍历:

# Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def maxLevelSum(self, root: Optional[TreeNode]) -> int: queue = collections.deque() queue.append(root) level = 0 bigest_sum = root.val bigest_level = 1 while queue: level += 1 level_sum = 0 length = len(queue) for i in range(length): rt = queue.popleft() if rt.left: queue.append(rt.left) if rt.right: queue.append(rt.right) level_sum += rt.val if level_sum > bigest_sum: bigest_sum = level_sum bigest_level = level return bigest_level
标签:层序遍历