Day125 | 灵神 | 二叉树 | 二叉树中的第K大层和
2583.二叉树中的第K大层和
2583. 二叉树中的第 K 大层和 - 力扣(LeetCode)
思路:
把每层的结果都放到一个vector数组里面,然后排序这个vector数组,返回第K大的元素即可
完整代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| 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; } };
|