public static void main(String args[]){
        QuickSortSingleLinkList qss = new QuickSortSingleLinkList();
        LinkList ll = new LinkList();
        Node head = null;
        head = ll.addNode(11, head);
        head = ll.addNode(2, head);
        head = ll.addNode(-1, head);
        head = ll.addNode(50, head);
        head = ll.addNode(13, head);
        head = ll.addNode(-5, head);
        head = ll.addNode(10, head);
        head = ll.addNode(8, head);
    
        head = qss.quickSortFaster(head);
        ll.printList(head);
    }
This version keeps tail of each recursion which helps us avoid going to tail in each recursion.
@param head
@return
src/com/interview/linklist/QuickSortSingleLinkList.java