c语言中删除链表中的一个节点
c语言中删除链表中的一个节点
日期:2016-01-11 16:20:55 人气:1
temp=p;
p=p->next;
temp->next=NULL;
这三句存在问题,temp=p,让temp指向p所指向的节点,p=p->next,p指向后移
temp->next=NULL,让temp的后继为空,这里出了问题,链表从temp指向的节点断开,相当于删除p之后的所有节点。
应该先判断p是不是最后节点
if(p->next==NULL)
如果是,只好去找p的前趋pre,让pre->next=NULL,free(p)
如果不是最后节点,