1def isValidBST(root):
2 def validate(node, min_val, max_val):
3 if not node:
4 return True
5
6 # Check if current node violates BST property
7 if node.val <= min_val or node.val >= max_val:
8 return False
9
10 # Recursively validate left and right subtrees
11 left_valid = validate(node.left, min_val, node.val)
12 if not left_valid:
13 return False
14
15 right_valid = validate(node.right, node.val, max_val)
16 if not right_valid:
17 return False
18
19 return True
20
21 return validate(root, float('-inf'), float('inf'))| Variable | Value |
|---|---|
root | "Node(2)" |
| Depth | Function Call |
|---|---|
| 1 | isValidBST(Node(2)) |
1def isValidBST(root):
2 def validate(node, min_val, max_val):
3 if not node:
4 return True
5
6 # Check if current node violates BST property
7 if node.val <= min_val or node.val >= max_val:
8 return False
9
10 # Recursively validate left and right subtrees
11 left_valid = validate(node.left, min_val, node.val)
12 if not left_valid:
13 return False
14
15 right_valid = validate(node.right, node.val, max_val)
16 if not right_valid:
17 return False
18
19 return True
20
21 return validate(root, float('-inf'), float('inf'))