tvl-depot/scratch/facebook/interview-cake/bst-checker.py
William Carroll cbdac30643 Reimplement bst-checker
Practice makes perfect. See the previous commit for a more details about this
solution.
2020-11-21 14:21:05 +00:00

14 lines
412 B
Python

def is_valid(node):
"""
Return True if `node` is a valid binary search tree.
"""
s = []
s.append((float('-inf'), node, float('inf')))
while s:
lo, node, hi = s.pop()
if lo <= node.value <= hi:
node.lhs and s.append((lo, node.lhs, node.value))
node.rhs and s.append((node.value, node.rhs, hi))
else:
return False
return True