LC 0270 [E] Closest Binary Search Tree Value - ALawliet/algorithms GitHub Wiki

preorder

class Solution:
    def closestValue(self, root: TreeNode, target: float) -> int:
        self.closest = math.inf
        
        def dfs(node, value):
            if not node: return
            
            min_diff = abs(self.closest - target)
            new_diff = abs(node.val - target)
            if new_diff < min_diff:
                self.closest = node.val
                
            if target < node.val:
                dfs(node.left, target)
            if target > node.val:
                dfs(node.right, target)
                
        dfs(root, target)
        return self.closest