# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param root TreeNode类
# @return bool布尔型
#
import sys
class Solution:
def isValidBST(self , root: TreeNode) -> bool:
# write code here
# 根据中序遍历的值来判断,递归base项是 判断当前根节点的值与左子树的值的大小关系。
def recur(root):
if not root:
return True
if not recur(root.left):
return False
if root.val <= self.pre:
return False
self.pre = root.val # 更新最值,self.pre
if not recur(root.right):
return False
return True
self.pre = -sys.maxsize -1
return recur(root)