Napisałem kod, który sprawdza czy jest to BST czy mógłby ktoś sprawdzić czy jest on poprawny oraz jak zastąpić ta wartości min i max żeby były uniwersalne dla każdego przypadku (póki co wstawiłem jakieś przykładowe).
def sprawdzenie(root, min = -1000, max = 1000):
if root == None:
return True
if (root.val <= min or root.val >= max):
return False
return sprawdzenie(root.left, min, root.val) and sprawdzenie(root.right, root.val, max)