[Swift]LeetCode270. 最近的二分搜索树的值 $ Closest Binary Search Tree Value
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址: https://www.cnblogs.com/strengthen/p/10648080.html
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
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.
给定一个非空的二进制搜索树和一个目标值,在BST中查找最接近目标的值。
注:
- 给定的目标值是一个浮点。
- 您保证在BST中只有一个最接近目标的唯一值。
Solution:
1 public class TreeNode { 2 public var val: Int 3 public var left: TreeNode? 4 public var right: TreeNode? 5 public init(_ val: Int) { 6 self.val = val 7 self.left = nil 8 self.right = nil 9 } 10 } 11 12 class Solution { 13 func closestValue(_ root: TreeNode?,_ target:Double) -> Int { 14 var a:Int = root!.val 15 var t:TreeNode? = target < Double(a) ? root?.left : root?.right 16 if t == nil {return a} 17 var b:Int = closestValue(t, target) 18 return abs(Double(a) - target) < abs(Double(b) - target) ? a : b 19 } 20 }