一个简单链表操作,帮忙看一下

wlwlwl 2003-10-17 10:17:30
有一个无头结点的单链表中,删除任意结点*P,
某教材上采用如此算法:将*P之后结点的DATA域值复制到*P结点中,然后删除*P之后的结点。并用C实现:
q=p->next;p->data=p->next->data;p->next=q->next->next;free(q);

我觉得是不是应该把p->next=q->next->next改成p->next=p->next->next才对,
另外是不是此算法可以这样实现:
q=p->next;p->data=q->data;p->next=q->next;free(q);
...全文
31 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyff8neo 2003-10-20
  • 打赏
  • 举报
回复
这样好么!好象没有头节点就只有这种方法了哦!以前都做的是带头节点,没有想过这个,^_^多谢了哦!
apogeecsj 2003-10-17
  • 打赏
  • 举报
回复
楼主什么都对:)
zhouqingyuan 2003-10-17
  • 打赏
  • 举报
回复
up
活力华华哥 2003-10-17
  • 打赏
  • 举报
回复
你的方法是正确的,书上的东西不是完全对的
jingfeng198 2003-10-17
  • 打赏
  • 举报
回复
但是为什么最后删除的是p之后的结点呢?
jingfeng198 2003-10-17
  • 打赏
  • 举报
回复
我认为你的没有错啊
「已注销」 2003-10-17
  • 打赏
  • 举报
回复
关于p->next=q->next->next,你的更正是对的。

你的实现算法也是对的。

33,006

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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