题目描述
工程师小v在项目开发中,需要将一个单向链表的第M位置和第N位置间的元素顺序倒转,请输出倒转后的链表。
样例
输入:
3 5
11 5 8 22 9 5 0
输出:
11 5 9 22 8 5 0
说明:仅一行,表示按要求倒转后的链表元素
代码部分
(形式上可能与题目有出入,因为记不清了)
public class Solution {
public class node{
int data;
node next;
node(int x){
data=x;
next=null;
}
}
public node Reverse(node head,int start,int end){
node dummy=new node(0);
dummy.next=head;
node mPre=null;
node pre=dummy;
node cur=head;
for(int i=0;i<start;i++){
mPre=pre;
pre=cur;
cur=cur.next;
}
//翻转链表
for(int j=start;j<end;j++){
node next=cur.next;
cur.next=pre;
pre=cur;cur=next;
}
//连接
mPre.next.next=cur;
mPre.next=pre;
return dummy.next;
}
public static void main(String[] args) {
}
}