Return True if a binary tree is a valid BST: every node's value is strictly greater than all values in its left subtree and strictly less than all in its right subtree. Checking only immediate children is not enough.
TreeNode and build(values) are provided.