Validate BST

Problem Statement

Check whether a binary tree is a valid Binary Search Tree (BST).

Example: Input: [2,1,3] → Output: true

Approach 1: Recursive Inorder Traversal

Explanation: BST inorder traversal must produce sorted values.

Time Complexity: O(n)

Space Complexity: O(h)

prev = -∞
function inorder(node):
    if node == NULL: return true
    if not inorder(node.left): return false
    if node.val <= prev: return false
    prev = node.val
    return inorder(node.right)
          

Approach 2: Recursion with Min/Max

Explanation: Each node must satisfy min < val < max constraints.

Time Complexity: O(n)

Space Complexity: O(h)

function isBST(node, min, max):
    if node == NULL: return true
    if node.val <= min or node.val >= max: return false
    return isBST(node.left, min, node.val) and isBST(node.right, node.val, max)