2583. 二叉树中的第K大层级和

2583. 二叉树中的第K大层级和

💡 原文英文,约700词,阅读约需3分钟。
📝

内容提要

给定一个二叉树的根节点和正整数k,要求返回第k大的层级和。使用广度优先搜索遍历树,计算每层节点值的和,存入数组。对数组排序后获取第k大的值。如果层数少于k,返回-1。时间复杂度为O(n + m log m),空间复杂度为O(n)。

🎯

关键要点

  • 给定一个二叉树的根节点和正整数k,要求返回第k大的层级和。

  • 层级和是同一层节点值的总和。

  • 使用广度优先搜索(BFS)遍历树,计算每层节点值的和,存入数组。

  • 对数组进行排序后获取第k大的值。

  • 如果层数少于k,返回-1。

  • 时间复杂度为O(n + m log m),空间复杂度为O(n)。

  • 示例1:输入为[5,8,9,2,1,3,7,4,6],k=2,输出为13。

  • 示例2:输入为[1,2,null,3],k=1,输出为3。

  • TreeNode类用于表示二叉树的节点,每个节点有值、左子节点和右子节点。

  • 函数kthLargestLevelSum使用队列进行BFS遍历,计算每层的节点值和并存储。

  • 处理边界情况:如果层数少于k,返回-1。

➡️

继续阅读