-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtrimBST.txt
30 lines (24 loc) · 1.06 KB
/
trimBST.txt
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
669. Trim a Binary Search Tree
Given the root of a binary search tree and the lowest and highest boundaries as low and high,
trim the tree so that all its elements lies in [low, high].
Trimming the tree should not change the relative structure of the elements that will remain in the tree
(i.e., any node's descendant should remain a descendant). It can be proven that there is a unique answer.
Return the root of the trimmed binary search tree. Note that the root may change depending on the given bounds.
class Solution {
public:
TreeNode* trimBST(TreeNode* root, int low, int high) {
if(!root){
return root;
}
if(root -> val >= low && root -> val <= high){
root -> left = trimBST(root-> left, low, high);
root -> right = trimBST(root -> right, low, high);
return root;
}
if(root -> val < low){
return trimBST(root -> right , low, high);
}
else
return trimBST(root ->left , low, high);
}
};