Balanced BST, min and max element of BST

class Node:
    def __init__(self, data):
       self.data = data
       self.left = None
       self.right = None
def balancedBST(node):
    if node is None:
       return 100000,-100000,True
    left_min, left_max, left_tree = balancedBST(node.left)
    right_min,right_max, right_tree = balancedBST(node.right)
    minimum = min(left_min, right_min, node.data)
    maximum = max(right_min, right_max, node.data)
    flag = True
    if node.data <= left_max or node.left > right_min:
        flag = False
    if not(left_tree) or not(right_tree):
        flag = False
    return minimum, maximum, flag
#driver code
root = Node(10)
root.left = Node(5)
root.right = Node(15)
root.right.left = Node(12)
root.right.right = Node(18)