1、取中数据到列表 2、对链表重新赋值

    public ListNode reverseBetween (ListNode listNode, int m, int n) {
        int index = 1;
        List<Integer> midList = new ArrayList<>();
        ListNode temp1 = listNode;
        while (temp1!=null){
            if(index>=m && index<=n){
                midList.add(0, temp1.val);
            }
            temp1 = temp1.next;
            index++;
        }
        // 区间反转
        ListNode temp2 = listNode;
        int lindex = 1;
        int midIndex = 0;
        while (temp2!=null){
            if(lindex>=m && lindex<=n){
                temp2.val = midList.get(midIndex);
                midIndex++;
            }
            temp2 = temp2.next;
            lindex++;
        }
        return listNode;
    }