• Closest Binary Search


    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.

    Analyse: get the value of each node. Since we know that the closest node is either the root node, or its child node. Use the property of binary search tree, find the value of the corresponding subtree. Compare the diff between root & target and child & target. 

     1 /**
     2  * Definition for a binary tree node.
     3  * struct TreeNode {
     4  *     int val;
     5  *     TreeNode *left;
     6  *     TreeNode *right;
     7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     8  * };
     9  */
    10 class Solution {
    11 public:
    12     int closestValue(TreeNode* root, double target) {
    13         TreeNode* child = target < root->val ? root->left : root->right;
    14         if (!child) return root->val;
    15         int childValue = closestValue(child, target);
    16         return abs(root->val - target) < abs(childValue - target) ? root->val : childValue;
    17     }
    18 };
  • 相关阅读:
    蓝桥杯_基础训练_龟兔赛跑预测
    大数加法
    Splay!
    topsort
    各种方法
    有时候dfs可以简化各种组合的操作
    组合数学
    重新认识三观
    手速狗还是不行啊。。。
    set和map和pair 转自ACdreamers
  • 原文地址:https://www.cnblogs.com/amazingzoe/p/5887289.html
Copyright © 2020-2023  润新知