0%

最接近的二叉搜索树值

题目(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;
}
}