public ListNode sortList1(ListNode head) {
    	ListNode node;
    	sortHead = head;
        
        if (head == null) return head;
        if (head.next == null) return head;
        else sortTail = head.next;
        if (sortTail.next == null) return head;
        else node = sortTail.next;
        if (sortTail.val < sortHead.val)
        {
            sortTail.next = sortHead;
            sortHead.next = node;
            sortHead = sortTail;
            sortTail = sortHead.next;
        }

        while (node != null)
        {
            sortTail.next = node.next;
            insertNode(node);
            node = sortTail.next;
        }
        return sortHead;
    }