LeetCode 98: Validate Binary Search Tree (my solution)

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: