Given the root of a binary tree, determine if it is a valid binary search tree (BST). A valid BST is defined as follows: (1) The left subtree of a node contains only nodes with keys less than the node's key. (2) The right subtree of a node contains only nodes with keys greater than the node's key. (3) Both the left and right subtrees must also be binary search trees.
Recursive Boundary Check
A common mistake is only checking if a child's value is less/greater than its parent. However, in a BST, *all* nodes in the left subtree must be less than the root, and *all* nodes in the right subtree must be greater. We solve this by passing down a `min` and `max` range that each node must fall within.