Create Validate Binary Search Tree

Every node's value must inside a boud. right bound is right neighbor, left bound is left neighbor.
For left tree, right bound is parent node.val, left bound is left.val. For right tree, left bound is parent node.val, right bound is right.val.
All the node's val is in ascending order by preorder traverse.