给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。
有效 二叉搜索树定义如下:
示例 1:

输入:root = [2,1,3]
输出:true
示例 2:

输入:root = [5,1,4,null,null,3,6]
输出:false
解释:根节点的值是 5 ,但是右子节点的值是 4 。
递归遍历
根据题意进行递归遍历即可。前序、中序、后序遍历都可以。
class Solution:
def isValidBST(self, root: TreeNode) -> bool:
def preorderTraversal(root, min_v, max_v):
if root == None:
return True
if root.val >= max_v or root.val <= min_v:
return False
return preorderTraversal(root.left, min_v, root.val) and preorderTraversal(root.right, root.val, max_v)
return preorderTraversal(root, float('-inf'), float('inf'))
参考资料:datawhalechina