public static boolean isBST(Node<Integer> root, int min, int max) {
        boolean success = false;
        if(root.data > min && root.data <max ){
            success = true;
            if(root.left!=null){
                if(root.data>root.left.data) {
                    success = success && isBST(root.left, min,root.data);
                }else{
                    return false;
                }
            }

            if(root.right!=null && success){
                if(root.data<root.right.data){
                    success = success && isBST(root.right, root.data,max);
                } else{
                    return false;
                }
            }

        } else{
            success = false;
        }
        return success;
    }