Thursday, September 18, 2014

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 right subtree of a node contains only nodes with keys greater than the node's key.
  • The left subtree of a node contains only nodes with keys less than the node's key.
  • Both the left and right subtrees must also be binary search trees.
Code in JAVA:
public class Validate_binary_search_tree {
     public class TreeNode{
         int val;
         TreeNode left;
         TreeNode right;
         TreeNode(int x) {
              val = x;
         }
     }
 int lastVal = Integer.MIN_VALUE;
 public boolean isValidBST(TreeNode root) {
  
        if(root == null) {
         return true;
        }
        if (!isValidBST(root.left)) {
         return false;
        }
        if (lastVal >= root.val) {
         return false;
        }
        lastVal = root.val;
        if (!isValidBST(root.right)) {
         return false;
        }

        return true; 
    }
} 

No comments:

Post a Comment