Check if each node is greater than its left child and less than its right child.
This only checks immediate children. It misses violations across levels. In the invalid tree above, 3 is correctly less than 4, but 3 is also less than 5 (the root), violating the BST property.
You need to track the valid range for each node, not just compare to immediate parent.