File tree Expand file tree Collapse file tree 1 file changed +38
-0
lines changed
18 - Binary Search Tree Data Structure Problems/09 - Predecessor and Successor Expand file tree Collapse file tree 1 file changed +38
-0
lines changed Original file line number Diff line number Diff line change 1+ class Solution
2+ {
3+ public:
4+ void findPreSuc (Node* root, Node*& pre , Node*& suc, int key)
5+ {
6+ pre = NULL ;
7+ suc = NULL ;
8+
9+ // find key
10+ Node* temp = root;
11+ while (temp != NULL ){
12+ if (temp -> key == key) break ;
13+
14+ if (temp -> key > key){
15+ suc = temp;
16+ temp = temp -> left;
17+ }else {
18+ pre = temp;
19+ temp = temp -> right;
20+ }
21+ }
22+
23+ if (temp == NULL ) return ;
24+
25+ Node* leftTree = temp -> left;
26+ while (leftTree != NULL ){
27+ pre = leftTree;
28+ leftTree = leftTree -> right;
29+ }
30+
31+ Node* rightTree = temp -> right;
32+ while (rightTree != NULL ){
33+ suc = rightTree;
34+ rightTree = rightTree -> left;
35+ }
36+
37+ }
38+ };
You can’t perform that action at this time.
0 commit comments