解题思路
判断每个节点的值是否在 (l, r) 范围内 (开区间)
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
class Solution: def isValidBST(self, root: TreeNode) -> bool: return self.solve(root) def solve(self, root, lower=-float('INF'), upper=float('INF')): if not root: return True if not (lower < root.val < upper): return False
if not self.solve(root.left, lower, root.val): return False
if not self.solve(root.right, root.val, upper): return False return True
|