98. Validate Binary Search Tree

Given a binary tree, determine if it is a valid binary search tree (BST).

Assume a BST is defined as follows:

  • The left subtree of a node contains only nodes with keys less than the node's key.

  • The right subtree of a node contains only nodes with keys greater than the node's key.

  • Both the left and right subtrees must also be binary search trees.

Example 1:

Input:

    2
   / \
  1   3

Output:
 true

Example 2:

    5
   / \
  1   4
     / \
    3   6

Output:
 false

Explanation:
 The input is: [5,1,4,null,null,3,6]. The root node's value
             is 5 but its right child's value is 4.

Thoughts:

  1. Inorder traversal + checking ascending property in serialized array

  2. Improving 1 by only recording the prev node

  3. Iteratively defining the left and right bound of the node

  4. Iterative Traversal (Generic to solve other problems such as Binary Tree Inorder Traversal, Kth Smallest in BST and Validate BST

Code 2:

Code 3:

Code 4:

Kth Smallest Element in a BST

Binary Tree Inorder Traversal

Last updated

Was this helpful?