669.修剪二叉搜索树
思路
这个题也可以算作对二叉搜索树整体操作的一类题,这类题的普遍解法是通过递归+可能出现的不同情况分析进行解题。本题也是一样,考虑root是不是在边界内,还是在边界两边(两种情况)。
代码
public TreeNode trimBST(TreeNode root, int low, int high) {
if(root==null) return root;
if (root.val<low)
{
if (root.right!=null) return trimBST(root.right,low,high);
}
else if(root.val>high) {
if (root.left!=null) return trimBST(root.left,low,high);
}
root.left=trimBST(root.left,low,high);
root.right=trimBST(root.right,low,high);
return root;
}