if self.data == sorted(list(set(self.data))):
return True
else:
return False
解法二:遍历中判断
class Solution:
def isValidBST(self, root: TreeNode) -> bool:
def helper(root, lower, upper): #参数为根,上界,下界
if not root: #为空不参与比较,返回真
return True
val = root.val
if val <= lower or val >= upper: #超界
return False
#递归左子树
#上界为当前根,下界不变
if not helper(root.left, lower, val):
return False
#递归右子树
#下界为当前根,上界不变
if not helper(root.right, val, upper):
return False
return True #全部通过返回真
#初始根不需要比较
return helper(root, -sys.maxsize, sys.maxsize)