二分查找
利用二分搜索树的性质进行二分查找,在查找的过程中记录最接近的值即可
class Solution {
double min = Double.MAX_VALUE;
int minValue ;
public int closestValue(TreeNode root, double target) {
minValue = root.val;
close(root,target); //二分查找
return minValue;
}
public void close(TreeNode root,double target){
if(root==null) //终止条件
return;
if(Math.abs(root.val-target)<min){ //如果最接近 则更新最值
min = Math.abs((double)root.val-target);
minValue = root.val;
}
//二分查找
if(target>(double)root.val)
close(root.right,target);
else
close(root.left,target);
}
}