我想知道我的程序运行时检查二进制树是否是二叉搜索树的大O符号是什么?我认为它是O(n)
,因为我的算法中的递归转到每个节点,但我认为它的一部分不是。我想知道是否有人可以帮我确认这个
def isBST(root, max_val=sys.maxsize, min_val=-sys.maxsize):
if root is None:
return True
else:
if root.left:
if root.left.value >= max_val:
return False
if root.right:
if root.right.value < min_val:
return False
return isBST(root.left, root.value, min_val) and isBST(root.right, max_val, root.value)