classSolution:deflimitedValidBST(self, node: Optional[TreeNode], lower:int, upper:int)->bool:if node ==None:returnTrue
result =Trueif node.left !=None:if node.left.val >= node.val or node.left.val <= lower:returnFalse
result = result and self.limitedValidBST(node.left, lower, node.val)if node.right !=None:if node.right.val <= node.val or node.right.val >= upper:returnFalse
result = result and self.limitedValidBST(node.right, node.val, upper)return result
defisValidBST(self, root: Optional[TreeNode])->bool:return self.limitedValidBST(root,float("-inf"),float("inf"))