## Problem Statement

Determine if a given binary tree is a binary search tree (BST). In a BST, for each node:

- All nodes to its left have values less than the node's value.
- All nodes to its right have values greater than the node's value.

### Example Generation

**Example 1:**

**Input:**[5,3,7]**Expected Output:**true**Justification:**The left child of the root (3) is less than the root, and the right child of the root (7) is greater than the root. Hence, it's a BST.

**Example 2:**

**Input:**[5,7,3]**Expected Output:**false**Justification:**The left child of the root (7) is greater than the root, making it invalid.

**Example 3:**

**Input:**[10,5,15,null,null,12,20]**Expected Output:**true**Justification:**Each subtree of the binary tree is a valid binary search tree. So, a whole binary tree is a valid binary search tree.

**Constraints:**

- The number of nodes in the tree is in the range [1, 10<sup>4</sup>].
- -2<sup>31</sup <= Node.val <= 2<sup>31</sup - 1

## Try it yourself

Try solving this question here:

Python3

Python3