力扣 反转链表II
反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。
说明:
1 ≤ m ≤ n ≤ 链表长度。
示例:
输入: 1->2->3->4->5->NULL, m = 2, n = 4
输出: 1->4->3->2->5->NULL
解答
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode reverseBetween(ListNode head, int m, int n) {
int[] a = new int[n-m+1];
ListNode cur = head;
ListNode nodeM = null;
int i = 1;
while (i<=m) {
if (i == m) {
nodeM = cur;
for (int j=0;j<a.length;j++){
a[j] = cur.val;
cur = cur.next;
}
break;
}
i++;
cur = cur.next;
}
for (int j=a.length-1;j>=0;j--){
nodeM.val = a[j];
nodeM = nodeM.next;
}
return head;
}
}