Validate Binary Search Tree

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

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


Not a valid Binary tree as 4 is less than 5.

Largest element in left subtree < root.val < Smallest element in left sub tree

Binary Tree Inorder traversal gives sorted elements.



Example 1:

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

Example 2:

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

To solve this we will apply Depth First Search.

Code

class Solution {

    public TreeNode prev = null;

    public boolean isValidBST(TreeNode root) {               

        if(root==null) return true;        

        if(!isValidBST(root.left)) return false;        

        if(prev!=null && prev.val >= root.val) return false;        

        prev = root;                

        if(!isValidBST(root.right)) return false;        

        return true;

    }

}





Comments

Popular posts from this blog

Java 8 : Find the number starts with 1 from a list of integers

Junit Mockito and Power Mockito

Important Linux Commands