鱼C论坛

 找回密码
 立即注册
查看: 2363|回复: 3

[已解决]单链表删除的问题

[复制链接]
发表于 2020-5-22 19:08:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
小甲鱼视频代码
Status ListDelete(LinkList *L, int i, ElemType *e)
{
        int j = 1;
        LinkList p, q;
        p = *L;
        while(p->next && j < i)                //遍历第1个位置~最后1个位置
        {
                p = p->next;
                j++;
        }
        if(!(p->next) || j > i)
        {
                return ERROR;
        }
        q = p->next;
        p->next = q->next;
        *e = q->data;
        free(q);
        return OK;
}
如果要删除最后一个位置,最后一个位置的next必为NULL,就返回错误,永远无法删除最后一个位置了。
求解释一下。
最佳答案
2020-5-23 11:43:20
这是针对带头结点的链表
比如删除最后一个结点(也就是第三个结点),开始循环,p指向第一个结点,j=2;p指向第二个结点,j=3;
退出循环,if条件不满足;
执行下面的语句,删除第三个结点,也是最后一个结点。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-23 11:43:20 | 显示全部楼层    本楼为最佳答案   
这是针对带头结点的链表
比如删除最后一个结点(也就是第三个结点),开始循环,p指向第一个结点,j=2;p指向第二个结点,j=3;
退出循环,if条件不满足;
执行下面的语句,删除第三个结点,也是最后一个结点。
微信图片_20200523113921.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-23 11:44:51 | 显示全部楼层
第一次回答问题,不知道对不对,如果有不对的,请指正
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-23 20:15:56 | 显示全部楼层
Sally2121 发表于 2020-5-23 11:43
这是针对带头结点的链表
比如删除最后一个结点(也就是第三个结点),开始循环,p指向第一个结点,j=2;p指 ...

我昨晚自己走了一遍解决了,还是谢谢你,这数据结构这区域挺冷清的...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 00:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表