给一棵非空二叉搜索树以及一个target值,找到在BST中最接近给定值的节点值
样例
样例1
输入: root = {5,4,9,2,#,8,10} and target = 6.124780
输出: 5
样例2
输入: root = {3,2,4,1} and target = 4.142857
输出: 4
注意事项
给出的目标值为浮点数
我们可以保证只有唯一一个最接近给定值的节点
解题思路1:
非递归,使用mymin变量存储当前最小差值,res为最接近的值。然后依照BST性质遍历
class Solution{
pubilc:
int closestValue(TreeNode* root,double target)
{
double mymin = DBL_MAX;
int res = 0;
while(root!=NULL)
{
if(fabs(target-root->val)<mymin)
{
mymin=fabs(target-root->val);
res=root->val;
}
if(target>root_>val)
root = root->right;
else
root = root->left;
}
return res;
}
}