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
class Solution {
public int closestValue(TreeNode root, double target) {
if (root == null) return -1;
int res = root.val;
while (root != null) {
if (Math.abs(root.val-target) < Math.abs(res-target)) res = root.val;
if (root.val > target) root = root.left;
else root = root.right;
}
return res;
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。