/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
struct TreeNode* trimBST(struct TreeNode* root, int low, int high) {
if(!root) return NULL;
if(root->val>=low && root->val<=high){
root->left=trimBST(root->left,low,high);
root->right=trimBST(root->right,low,high);
}else{
if(root->val < low){
return trimBST(root->right,low,high);
}else if(root->val > high){
return trimBST(root->left,low,high);
}
}
return root;
}
结果: