2583. 二叉树中的第 K 大层和
题目链接:2583. 二叉树中的第 K 大层和
代码如下:
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*///层次遍历
class Solution {
public:long long kthLargestLevelSum(TreeNode* root, int k) {vector<long long> nums;//保存各层之和queue<TreeNode*> que;que.push(root);//层次遍历while(!que.empty()){long long sum=0;int len=que.size();for(int i=0;i<len;i++){TreeNode* temp=que.front();que.pop();sum+=temp->val;if(temp->left)que.emplace(temp->left);if(temp->right)que.push(temp->right);}nums.emplace_back(sum);}sort(nums.begin(),nums.end(),greater<long long>());//进行递减排序if(k>nums.size())return -1;return nums[k-1];}
};