c语言 删除链表的某个节点

//删除p指向的节点intdelNode(stuInfo*p){stuInfo*temp;temp=p;p=p->next;temp->next=NULL;free(te... //删除p指向的节点
int delNode(stuInfo*p)
{
stuInfo*temp;
temp=p;
p=p->next;
temp->next=NULL;
free(temp);
return 0;
}

有错误吗?我只要求删除p指向的节点,其余无要求。
//删除p指向的节点
stuInfo*delNode(stuInfo*head,stuInfo*p)
{
stuInfo*temp,*q;
q=initialize(q);
q->next=head;
temp=p;
p=p->next;
temp->next=NULL;
free(temp);
head=q->next;
q->next=NULL;
free(q);
return head;
}

这是我修改后的,好像还是不对。。真不明白。。。
展开
 我来答
有钱买不起房子
推荐于2017-11-28 · TA获得超过4326个赞
知道大有可为答主
回答量:1249
采纳率:100%
帮助的人:2088万
展开全部
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)
如果不是最后节点,将p的后继节点数值域复制给p,然后将p的后继节点删除,等同与删除p
p->data=p->next->data;
p->next=p->next->next;
free(p);
liangjian_cn
2011-07-03 · 超过12用户采纳过TA的回答
知道答主
回答量:44
采纳率:0%
帮助的人:31.8万
展开全部
p 的上一个节点要等于 p->next
struct node *delet(head,pstr)以/*he a d 为头指针,删除ps t r 所在节点*/
struct node *head;
char *pstr;
{
struct node *temp,*p;
t e m p = h e a d ; / * 链表的头指针* /
if (head==NULL) / *链表为空* /
printf("\nList is null!\n");
else /*非空表* /
{
t e m p = h e a d ;
while (strcmp(temp->str,pstr)!=0&&temp->next!=NULL)
/ * 若节点的字符串与输入字符串不同,并且未到链表尾* /
{
p = t e m p ;
t e m p = t e m p - > n e x t ; / * 跟踪链表的增长,即指针后移* /
}
if(strcmp(temp->str,pstr)==0 ) / *找到字符串* /
{
if(temp==head) { / * 表头节点* /
printf("delete string :%s\n",temp->str);
h e a d = h e a d - > n e x t ;
f r e e ( t e m p ) ; / *释放被删节点* /
}
e l s e
{
p->next=temp->next; /表*中节点*/
printf("delete string :%s\n",temp->str);
f r e e ( t e m p ) ;
}
}
else printf("\nno find string!\n");没/找* 到要删除的字符串*/
}
r e t u r n ( h e a d ) ; / *返回表头指针* /
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-07-05
展开全部
NODE * x = head; NODE * y = 0;
int i = 0;
for(i = 0; i < 8; i++) x = x->next;
y = x->next;
x->next = y->next;
free(y);
另外,站长团上有产品团购,便宜有保证
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式