题目(LeetCode #270)
给定一个不为空的二叉搜索树和一个目标值 target
,请在该二叉搜索树中找到最接近目标值 target
的数值。
注意:
给定的目标值 target
是一个浮点数
题目保证在该二叉搜索树中只会存在一个最接近目标值的数
示例:
输入: root = [4,2,5,1,3],目标值 target = 3.714286
输出: 4
题解
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| class Solution { public int closestValue(TreeNode root, double target) { if (root == null) return Integer.MAX_VALUE;
double diff = Math.abs(root.val - target); int left = closestValue(root.left, target); if (Math.abs(left - target) < diff) return left;
int right = closestValue(root.right, target); if (Math.abs(right - target) < diff) return right;
return root.val; } }
|