List *list_reverse(List *head)
{
/*List *p,*q,*r;
p=head;
q=p->next;
while(q!=NULL)
{
r=q->next;
q->next=p;
p=q;
q=r;
}
head->next=NULL;
head=p;
if(head==NULL || head->next==NULL)
return head;
new_head = list_reverse(head->next);
head->next->next=head;
head->next=NULL; //防止链表成为一个环,这是最关键的。
return new_head;
}
{
/*List *p,*q,*r;
p=head;
q=p->next;
while(q!=NULL)
{
r=q->next;
q->next=p;
p=q;
q=r;
}
head->next=NULL;
head=p;
return head; *///上为三个临时指针变量方法实现
List* new_head=head;if(head==NULL || head->next==NULL)
return head;
new_head = list_reverse(head->next);
head->next->next=head;
head->next=NULL; //防止链表成为一个环,这是最关键的。
return new_head;
}