class Solution {
public TreeNode trimBST(TreeNode root, int low, int high) {
if(root == null){
return null;
}
if(root.val < low){
return trimBST(root.right,low,high);
}else if(root.val > high){
return trimBST(root.left,low,high);
}
root.left = trimBST(root.left,low,high);
root.right = trimBST(root.right,low,high);
return root;
}
}
108
class Solution {
public TreeNode sortedArrayToBST(int[] nums) {
int start = 0;
int end = nums.length;
return ArrayToBST(nums,start,end);
}
public TreeNode ArrayToBST(int[] nums,int start,int end){
if(start >= end){
return null;
}
int mid = start + (end - start)/2;
TreeNode root = new TreeNode(nums[mid]);
root.left = ArrayToBST(nums,start,mid);
root.right = ArrayToBST(nums,mid+1,end);
return root;
}
}
538.
class Solution {
int sum = 0;
public TreeNode convertBST(TreeNode root) {
return convert(root);
}
public TreeNode convert(TreeNode root){
if(root == null){
return null;
}
root.right = convert(root.right);
sum = sum + root.val;
root.val = sum;
root.left = convert(root.left);
return root;
}
}