public Node add(Node head,int data){
        if(head == null){
            head = Node.newNode(data);
            head.next = head;
            return head;
        }
        Node node = Node.newNode(data);
        Node tail = getTail(head);
        if(node.data < head.data){
            node.next = head;
            tail.next = node;
            return node;
        }
        Node current = head;
        Node pre = null;
        while(current != tail && node.data >= current.data){
            pre = current;
            current = current.next;
        }
        if(node.data < current.data){
            node.next = current;
            pre.next = node;
        }
        else{
            node.next = tail.next;
            tail.next = node;
        }
        return head;
    }
http://www.geeksforgeeks.org/sorted-insert-for-circular-linked-list/
Test cases
Insert 2nd element smaller than head
Insert 2nd element larger than head
Insert element larger than tail
Insert element just before tail
Insert element somewhere between head and tail
src/com/interview/linklist/SortedCircularLinkList.java