1def is_valid_bst(root):
2 def validate(node, low=-float('inf'), high=float('inf')):
3 if not node:
4 return True
5 if not (low < node.val < high):
6 return False
7 return (validate(node.left, low, node.val) and
8 validate(node.right, node.val, high))
9
10 return validate(root)