Source: https://leetcode.com/problems/validate-binary-search-tree/
Given the root of a binary tree, determine if it is a valid binary search tree (BST). A valid BST is defined as follows: The left subtree of a node contains only nodes with keys less than the node key. The right subtree of a node contains only nodes with keys greater than the node key. Both the left and right subtrees must also be binary search trees.