Given the root of a binary tree, determine if it is a valid binary search tree.
A valid BST satisfies:
- Left subtree contains only nodes with values less than the node's value
- Right subtree contains only nodes with values greater than the node's value
- Both subtrees are also valid BSTs
Example: is valid.
is not (4 is in the right subtree of 5 but 3 < 5). Constraints: up to nodes, values are 32-bit integers.