image.png

二分查找

利用二分搜索树的性质进行二分查找,在查找的过程中记录最接近的值即可

  1. class Solution {
  2. double min = Double.MAX_VALUE;
  3. int minValue ;
  4. public int closestValue(TreeNode root, double target) {
  5. minValue = root.val;
  6. close(root,target); //二分查找
  7. return minValue;
  8. }
  9. public void close(TreeNode root,double target){
  10. if(root==null) //终止条件
  11. return;
  12. if(Math.abs(root.val-target)<min){ //如果最接近 则更新最值
  13. min = Math.abs((double)root.val-target);
  14. minValue = root.val;
  15. }
  16. //二分查找
  17. if(target>(double)root.val)
  18. close(root.right,target);
  19. else
  20. close(root.left,target);
  21. }
  22. }