链表逆置中的问题
现有一个链表,需要逆置,算法如下:
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有影响吗?
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 有影响吗
没影响
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