Skip to content

Commit 49a375f

Browse files
authored
Create 2nd Approach.cpp
1 parent 6b18560 commit 49a375f

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
class Solution {
2+
public:
3+
int kthLargest(Node *root, int k) {
4+
Node* current = root;
5+
int count = 0;
6+
int element = -1;
7+
8+
while(current != NULL){
9+
if(current -> right == NULL){
10+
count++;
11+
if(count == k) element = current -> data;
12+
current = current -> left;
13+
}else{
14+
Node* predecessor = current -> right;
15+
while(predecessor -> left != NULL && predecessor -> left != current){
16+
predecessor = predecessor -> left;
17+
}
18+
19+
if(predecessor -> left == NULL){
20+
predecessor -> left = current;
21+
current = current -> right;
22+
}else{
23+
predecessor -> left = NULL;
24+
count++;
25+
if(count == k) element = current -> data;
26+
current = current -> left;
27+
}
28+
}
29+
if(element != -1) break;
30+
}
31+
return element;
32+
}
33+
};

0 commit comments

Comments
 (0)