链表逆置中的问题

现有一个链表,需要逆置,算法如下:
void link::swaplink(link *head)
{
  link *p,*s;
  p=head->next;
  head->next=NULL;
  while(p!=NULL)
  { 
  s=p->next;
  p->next=head->next;
  head->next=p;
  p=s;
  }
}

其中的头指针是怎么运动的,其中head->next=NULL对上面一句p=head->next有影响吗?

作者: MATHPHYSIC   发布时间: 2011-06-16

没有,因为指针并没有销毁,只是head的next不在指向它,而改为p指向它了

作者: bdmh   发布时间: 2011-06-16

int a = 10;
int b = 20;
a = b;
b = 30;
b = 30对a = b 有影响吗
没影响

作者: q191201771   发布时间: 2011-06-16

没有影响。p=head->next就是为了先保存一下head->next的内容。

作者: aozhi   发布时间: 2011-06-16

head->next=NULL;主要是把链表逆置后的最后一个结点的指向下一个结点的指针置空,因为没有下一个结点了。头指针的移动的话,你可画个图出来就知道了

作者: maoxing63570   发布时间: 2011-06-16