L270. Closest Binary Search Tree Value
Problem:
Given a non-empty binary search tree and a target value, find the value in the BST that is closest to the target.
Note:
Given target value is a floating point.
You are guaranteed to have only one unique value in the BST that is closest to the target.
Example:
Input: root = [4,2,5,1,3], target = 3.714286
4
/ \
2 5
/ \
1 3
Output: 4
Solution:
public int closestValue(TreeNode root, double target){
if(root == null) return 0;
TreeNode cur = root;
TreeNode res = root;
while(cur != null){
if(Math.abs(cur.val - target) < Math.abs(res - target){
res = cur;
}else if(cur.val < target){
cur = cur.right;
}else cur = cur.left;
}
return res.val;
}
Last updated
Was this helpful?