Closest Binary Search
Posted amazingzoe
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 };
以上是关于Closest Binary Search的主要内容,如果未能解决你的问题,请参考以下文章
270. Closest Binary Search Tree Value
Leetcode 270. Closest Binary Search Tree Value
Leetcode 270: Closest Binary Search Tree Value
[LC] 270. Closest Binary Search Tree Value