Skip to content

Instantly share code, notes, and snippets.

@iamprayush
Created September 18, 2020 10:09
Show Gist options
  • Save iamprayush/082dc3929a6210cf62cd8a26de6dc42b to your computer and use it in GitHub Desktop.
Save iamprayush/082dc3929a6210cf62cd8a26de6dc42b to your computer and use it in GitHub Desktop.
Validate Binary Search Tree
class Solution:
def isValidBST(self, node, mini=-inf, maxi=inf):
if not node:
return True
if not mini < node.val < maxi:
return False
left_is_valid, right_is_valid = True, True
if node.left:
if node.left.val >= node.val:
left_is_valid = False
else:
left_is_valid = self.isValidBST(node.left, mini, min(maxi, node.val))
if node.right:
if node.right.val <= node.val:
right_is_valid = False
else:
right_is_valid = self.isValidBST(node.right, max(mini, node.val), maxi)
return left_is_valid and right_is_valid
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment