原理:使用三个指针,p,q指向交换的元素,r指向后续元素
代码如下:
class Node{
int data;
Node next;
Node(int data){
this.data=data;
}
} Node reverse(Node head) {
if(head==null || head.next==null) return head;
Node p=head,q=p.next,r=q.next;
q.next=p;p.next=null;
while(r!=null){
p=q;
q=r;
r=r.next;
q.next=p;
}
return q;
}
}