Validate Binary Search Tree

Medium~25 min

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 strictly less than the node's key.
  • The right subtree of a node contains only nodes with keys strictly greater than the node's key.
  • Both the left and right subtrees must also be binary search trees.

The tree is given as a level-order array where null represents missing nodes. For example, [2, 1, 3] represents:

    2
   / \
  1   3

Examples

Example 1
Input: root = [2, 1, 3]
Output: true
Explanation: The left child (1) is less than root (2) and the right child (3) is greater than root (2).
Example 2
Input: root = [5, 1, 4, null, null, 3, 6]
Output: false
Explanation: The root node value is 5 but the right child subtree contains 3, which is less than 5.
Example 3
Input: root = [1]
Output: true
Explanation: A single node is always a valid BST.

Constraints

  • The number of nodes in the tree is in the range [0, 10^4]
  • -2^31 <= Node.val <= 2^31 - 1
  • Expected time complexity: O(n)
Code
Ctrl+EnterRun|Ctrl+⇧+EnterSubmit
Output

Run your code to see results

Use Cmd+Enter to run