Practice Problem

Validate Binary Search Tree

Difficulty: Medium

Given the root of a binary tree, determine if it is a valid binary search tree using bounds checking or in-order traversal.

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 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.

Examples

Example 1:

Input: root = [2, 1, 3]
Output: true

    2
   / \
  1   3

Example 2:

Input: root = [5, 1, 4, null, null, 3, 6]
Output: false

    5
   / \
  1   4
     / \
    3   6

Explanation: The root's right child is 4, which is less than 5.
             Additionally, node 3 is in the right subtree of 5 but is less than 5.

Example 3:

Input: root = [5, 4, 6, null, null, 3, 7]
Output: false

    5
   / \
  4   6
     / \
    3   7

Explanation: Node 3 is in the right subtree of 5 but is less than 5.

Constraints

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

Expected Complexity

  • Time: O(n)
  • Space: O(h) where h is the height of the tree
MEDIUM
Binary Tree
Binary Search Tree (BST)
DFS
Recursion
Inorder
Intermediate

0 views

Solution

Hints

Hint 1
Hint 2
Premium
Hint 3
Premium
Hint 4
Premium