private ListNode reverseGroup(ListNode start, ListNode end) {
            ListNode prefix = start.next;
            ListNode p = prefix.next;
            while (p != end) {
                ListNode temp = p.next;
                p.next = prefix;
                prefix = p;
                p = temp;
            }
            ListNode temp = start.next;
            start.next = prefix;
            temp.next = end;
            return temp;
        }