w3resource

Python Binary Search Tree: Find the closest value of a target in a given non-empty Binary Search Tree (BST) of unique values


Write a Python program to find the closest value to a given target value in a given non-empty Binary Search Tree (BST) of unique values.

Sample Solution:

Python Code:

class TreeNode(object):
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None

def closest_value(root, target):
    a = root.val
    kid = root.left if target < a else root.right
    if not kid:
        return a
    b = closest_value(kid, target)
    return min((a,b), key=lambda x: abs(target-x))

root = TreeNode(8)  
root.left = TreeNode(5)  
root.right = TreeNode(14) 
root.left.left = TreeNode(4)  
root.left.right = TreeNode(6) 
root.left.right.left = TreeNode(8)  
root.left.right.right = TreeNode(7)  
root.right.right = TreeNode(24) 
root.right.right.left = TreeNode(22)  
    
result = closest_value(root, 19)
print(result)

Sample Output:

22

Flowchart:

Flowchart: Find the closest value of a target in a given non-empty Binary Search Tree of unique values.

Python Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a Python program to create a Balanced Binary Search Tree (BST) using an array (given) elements where array elements are sorted in ascending order.
Next: Write a Python program to check whether a given a binary tree is a valid binary search tree (BST) or not.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.