Skip to Content

Validate Binary Search Tree (BST)

Home | Coding Interviews | Simple Data Structures | Validate Binary Search Tree (BST)

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

class Solution {
    public boolean isValidBST(TreeNode root) {
        
        return checker( -INF, INF, root);
    }
    
    private boolean checker( long lower, long upper, TreeNode node ){
        
        if( node == null ){
            return true;
        }
        
        if( (lower < node.val) && ( node.val < upper ) ){
            return checker(lower, node.val, node.left) && checker(node.val, upper, node.right);
        }
        
        return false;
    }
    
    private long INF = Long.MAX_VALUE;

}

Posted by Jamie Meyer 20 days ago