因为你要插入到第i个位置之前需要把第i个元素以后以及第i个元素都往后移,使第i个位置空出,才能使元素插入到第i个位置,你书上的这一条代码就是在完成后移操作
int destroy(struct node *head)
{
struct node *p; //定义结构体指针
if(head==NULL)//如果链表不存在则返回0
{
return 0;
}
while(head != 0)//如果存在则进行摧毁,直到head为空,所有节点被销毁
{
p = head->next;//把head指向的下一个节点被P保存
free(head);//释放掉head指向的节点
head = p;//把P保存的节点被head保存
}
};