File tree Expand file tree Collapse file tree 1 file changed +33
-0
lines changed
18 - Binary Search Tree Data Structure Problems/08 - Kth Largest Element in BST Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Original file line number Diff line number Diff line change 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+ };
You can’t perform that action at this time.
0 commit comments