node *reverse(node *head)
{
node *head,*p,*q,*r;
if(head==NULL)
{
return head;
}
p=head->next;
q=p->next;
p->next=NULL;
while(q!=NULL)
{
r=q->next;
q->next=p;
p=q;
q=r;
}
head->next=p;
return head;
}
我的疑问是while循环进行指针反转,需要”P->next=NULL;“加入while循环最后一句么,不然P-next会指向q,但是教科书程序如上!不知道是否考虑错了!