public static void main(String args[]){
        MergeSortLinkList msll = new MergeSortLinkList();
        LinkList ll = new LinkList();
        Node head = null;
        head = ll.addNode(11, head);
        head = ll.addNode(12, head);
        head = ll.addNode(-3, head);
        head = ll.addNode(45, head);
        head = ll.addNode(5, head);
        head = msll.sort(head, false);
        ll.printList(head);
    }
http://www.geeksforgeeks.org/merge-sort-for-linked-list/
Test cases
0 nodes
1 nodes
2 nodes
3 nodes
fully sorted
reverse sorted
src/com/interview/linklist/MergeSortLinkList.java