删除链表中节点

beick 2005-11-04 07:25:25
一个链表,不知道header指针,只知道其中一个节点指针,要删除这个节点?
h->a->b->c->d->...不知道h位置,只知道p指向c,要delc,不能破坏链其他节点情况
...全文
441 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
Grubby_c 2005-11-08
  • 打赏
  • 举报
回复
I_love_life(似水年华) 学习!
bombwang 2005-11-08
  • 打赏
  • 举报
回复
I_love_life(似水年华),顶你,
wushimiang12 2005-11-08
  • 打赏
  • 举报
回复
I_love_life(似水年华),厲害!
anranxon 2005-11-08
  • 打赏
  • 举报
回复
I_love_life(似水年华),顶你,
liooon 2005-11-08
  • 打赏
  • 举报
回复
同意happydivid(泓笑)的想法
yanxiazhiqiu 2005-11-08
  • 打赏
  • 举报
回复
理解错了,就是传值了。相当于happydivid的方法,呵呵,不错不错。
yanxiazhiqiu 2005-11-08
  • 打赏
  • 举报
回复
I_love_life删除的是p后边的节点。可行的还是happydivid的方法或改成双向的。
rabbitweng 2005-11-08
  • 打赏
  • 举报
回复
I_love_life(似水年华)的方法确实不错
Grubby_c 2005-11-08
  • 打赏
  • 举报
回复
google电面题
I_love_life 2005-11-07
  • 打赏
  • 举报
回复
p1=p->next;p->data=p1->data;
p->next=p1->next;free(p1);
bluemoonright 2005-11-06
  • 打赏
  • 举报
回复
也不一定,C后面的的节点就可以删。
Mr_Yang 2005-11-06
  • 打赏
  • 举报
回复
改双向链表就简单了。
Grubby_c 2005-11-06
  • 打赏
  • 举报
回复
单向没有head删不了
happydivid(泓笑) 赞一个~
2004csharp 2005-11-04
  • 打赏
  • 举报
回复
我顶
bluemoonright 2005-11-04
  • 打赏
  • 举报
回复
如果a->next=b;b->next=c;
那么a->next=c;free(b);
我做的时候一开始用的单向,但发现单向增加结节不便,后改为双向。且是在C++中做的用new分配的空间,当然后面是应该用delete()了,但我想关于结点的操作应该差不多!请指教!
bluemoonright 2005-11-04
  • 打赏
  • 举报
回复
讨论:A->next=c;free(b);你别告诉我A没有NEXT指针。
czl119 2005-11-04
  • 打赏
  • 举报
回复
可以,如删b,先把c的指针指向a,再释放B,本人用链接做过,建议使用双向链接,这样不管是删除还是增加结点都比较容易。二楼的做法也对,不过删除后也可以重新指定P。看你怎么做了。

晕,你怎么把c的指针指向a?这可不是双向连表,也不是循环连表。
arrowcy 2005-11-04
  • 打赏
  • 举报
回复
晕,怎么今天我法帖都这么慢呢?总是被抢先,我上面说的楼上是指的 happydivid(泓笑)哈
bluemoonright 2005-11-04
  • 打赏
  • 举报
回复
吐血,哪P1怎么办?不管了?还不是多了一个。
bluemoonright 2005-11-04
  • 打赏
  • 举报
回复
可以,如删b,先把c的指针指向a,再释放B,本人用链接做过,建议使用双向链接,这样不管是删除还是增加结点都比较容易。二楼的做法也对,不过删除后也可以重新指定P。看你怎么做了。
加载更多回复(5)

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧