用单链表实现:删除[1,2,3,4,5]表中第i个结点,(i=4)输出序列。
答案:1 悬赏:50 手机版
解决时间 2021-03-26 10:33
- 提问者网友:放下
- 2021-03-26 06:48
用单链表实现:删除[1,2,3,4,5]表中第i个结点,(i=4)输出序列。
最佳答案
- 五星知识达人网友:末日狂欢
- 2021-03-26 08:04
void pdelete(NODE *head,int i) {
NODE *p,*q;
int j;
if (i==0) //删除的是头指针,返回
return;
p=head;
for (j=1; jnext!=NULL; j++)
p=p->next; //将p指向要删除的第i个节点的前驱节点
if (p->next==NULL) { //表明链表中的节点不存在
printf("不存在!");
return;
}
q=p->next; //q指向待删除的节点
p->next=q->next; //删除节点i,也可写成p->next=p->next->next
free(q); //释放节点i的内存单元
}
NODE *p,*q;
int j;
if (i==0) //删除的是头指针,返回
return;
p=head;
for (j=1; jnext!=NULL; j++)
p=p->next; //将p指向要删除的第i个节点的前驱节点
if (p->next==NULL) { //表明链表中的节点不存在
printf("不存在!");
return;
}
q=p->next; //q指向待删除的节点
p->next=q->next; //删除节点i,也可写成p->next=p->next->next
free(q); //释放节点i的内存单元
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯