98. Validate Binary Search Tree
验证BST,只需要recursively验证当前节点的值是否在合格区间内。
或者利用BST性质(inorder遍历是ascending的),只需要把当前值与prev比较即可。
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def isValidBST(self, root: TreeNode) -> bool:
return self.checkNode(root, float("-inf"), float("inf"))
def checkNode(self, node, lower, upper) -> bool:
if not node: return True
if node.val <= lower or node.val >= upper:
return False
else:
return (self.checkNode(node.left, lower, node.val) and self.checkNode(node.right, node.val, upper))
Last updated
Was this helpful?