92.反轉連結串列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) {
ListNode dumy=new ListNode(0);
dumy.next=head;
ListNode cur=dumy;
ListNode pre,last;
ListNode fron=dumy;
for(int i=0;i<m-1;i++){
cur=cur.next;
}
pre=cur;
last=cur.next;
for(int i=m-1;i<n;i++)
{
pre=cur.next;
cur.next=pre.next;
pre.next=fron;
fron=pre;
}
pre=cur.next;
cur.next=fron;
last.next=pre;
return dumy.next;
}
}