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 3Output: 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; }}