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;
}