From 64aa1e04625e0cdc6f7f4eccbc95a29e8f78da51 Mon Sep 17 00:00:00 2001 From: prograsshopper Date: Sat, 22 Nov 2025 23:20:14 +0900 Subject: [PATCH] week 2: Validate Binary Search Tree --- validate-binary-search-tree/prograsshopper.py | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 validate-binary-search-tree/prograsshopper.py diff --git a/validate-binary-search-tree/prograsshopper.py b/validate-binary-search-tree/prograsshopper.py new file mode 100644 index 000000000..250526d06 --- /dev/null +++ b/validate-binary-search-tree/prograsshopper.py @@ -0,0 +1,22 @@ +# 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: + # Time Complexity: O(N) + # Space Complexity: O(N) + def check_valid(node, min_val, max_val): + if not node: + return True + if not (min_val < node.val < max_val): + return False + return ( + check_valid(node.left, min_val, node.val) + and + check_valid(node.right, node.val, max_val) + ) + + return check_valid(root, float('-inf'), float('inf'))