Day125 | 灵神 | 二叉树 | 二叉树中的第K大层和
Day125 | 灵神 | 二叉树 | 二叉树中的第K大层和
2583.二叉树中的第K大层和
2583. 二叉树中的第 K 大层和 - 力扣(LeetCode)
思路:
把每层的结果都放到一个vector数组里面,然后排序这个vector数组,返回第K大的元素即可
完整代码:
class Solution {
public:long long kthLargestLevelSum(TreeNode* root, int k) {vector<long long> res;queue<TreeNode *> q;if(root==nullptr)return 0;q.push(root);while(!q.empty()){int size=q.size();long long path=0;for(int i=0;i<size;i++){TreeNode *t=q.front();q.pop();path+=t->val;if(t->left)q.push(t->left);if(t->right)q.push(t->right);}res.push_back(path);}sort(res.begin(),res.end());if(res.size()>=k)return res[res.size()-k];return -1;}
};