单链表的逆序是面试中经常写的一道算法题,下面给出它的实现:
注:下为带头结点的单链表
java代码
public void reverse_1(){
Entry e= head;//head为链表的头结点
Entry p = e;
if(e.next==null || e.next.next==null)//链表为空,或者只有一个节点,则返回
return ;
e = e.next;
p = e.next;
while(e.next!=null){
e.next = p.next;
p.next = head.next;
head.next = p;
p = e.next;
}
}
c++代码
void reverse(LinkList &head){
if(head==NULL|| head->next==NULL)
return ;
LinkList e = head->next;
LinkList p = e->next;
while(e->next){
e->next = p->next;
p->next = head->next;
head->next = p;
p = e->next;
}
}