Python Solution:
# 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: Optional[TreeNode]) -> bool: def judge(node, lower, upper): #Recursion # Empty trees are valid if node==None: return True # The current node's value must within range if node.val<=lower or node.val >= upper: return False #Go left, current value will be upper bound #Go right, current value will be lower bound return judge(node.left,lower,node.val) and judge(node.right,node.val,upper) return judge(root,-math.inf,math.inf) #Time complexity: O(n) #Space complexity: O(n)
Time Complexity: O(n)
Space Complexity: O(n)
Feeling tired? You can also try our free online no-installation required casual games: Here Please consider to follow my youtube channel to support me: