Skip to content

Commit 54e8337

Browse files
authored
2583. Kth Largest Sum in a Binary Tree.cpp
1 parent e40f776 commit 54e8337

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed
+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
class Solution {
2+
public:
3+
long long kthLargestLevelSum(TreeNode* root, int k) {
4+
deque<TreeNode*> levelQ;
5+
priority_queue<long long, vector<long long>, greater<long long>> minSumQ;
6+
levelQ.push_back(root);
7+
8+
while (!levelQ.empty()) {
9+
long long currLvlSum = 0;
10+
int lvlSize = levelQ.size();
11+
while (lvlSize-- > 0) {
12+
TreeNode* currNode = levelQ.front();
13+
levelQ.pop_front();
14+
15+
if (currNode->left != nullptr) {
16+
levelQ.push_back(currNode->left);
17+
}
18+
if (currNode->right != nullptr) {
19+
levelQ.push_back(currNode->right);
20+
}
21+
currLvlSum += currNode->val;
22+
}
23+
24+
minSumQ.push(currLvlSum);
25+
if (minSumQ.size() > k) {
26+
minSumQ.pop();
27+
}
28+
}
29+
30+
return (minSumQ.size() == k) ? minSumQ.top() : -1;
31+
32+
}
33+
};

0 commit comments

Comments
 (0)