文章目录
- 1. 题目
- 2. 解题
- 2.1 暴力查找
- 2.2 二分查找
1. 题目
给定一个不为空的二叉搜索树和一个目标值 target,请在该二叉搜索树中找到最接近目标值 target 的数值。
注意:
给定的目标值 target 是一个浮点数
题目保证在该二叉搜索树中只会存在一个最接近目标值的数
示例:
输入: root = [4,2,5,1,3],目标值 target = 3.7142864/ \2 5/ \
1 3
输出: 4
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/closest-binary-search-tree-value
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
2.1 暴力查找
class Solution {int ans = LONG_MAX;double diff = LONG_MAX;
public:int closestValue(TreeNode* root, double target) {if(!root) return 0;if(fabs(double(root->val)-target) < diff){diff = fabs(double(root->val)-target);ans = root->val;}closestValue(root->left, target);closestValue(root->right, target);return ans;}
};
16 ms 20.9 MB
2.2 二分查找
class Solution {int ans = LONG_MAX;double diff = LONG_MAX;
public:int closestValue(TreeNode* root, double target) {if(!root) return 0;if(fabs(double(root->val)-target) < diff){diff = fabs(double(root->val)-target);ans = root->val;}if(root->val > target)closestValue(root->left, target);elseclosestValue(root->right, target);return ans;}
};
20 ms 20.8 MB
长按或扫码关注我的公众号,一起加油、一起学习进步!