c语言中删除链表中的一个节点

日期:2016-01-11 16:20:55 人气:1

c语言中删除链表中的一个节点

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) 如果不是最后节点,
    A+
热门评论