💡
原文英文,约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。
➡️