019f8fd211
git-subtree-dir: users/wpcarro git-subtree-mainline:464bbcb15c
git-subtree-split:24f5a642af
Change-Id: I6105b3762b79126b3488359c95978cadb3efa789
14 lines
412 B
Python
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
|