c语言 编写函数实现——链表的添加与删除节点(头删除,中间删除,尾删除)(运用二级指针)

添加节点详见上一篇blog:
《c语言 运用函数实现单向链表的创建,添加节点和插入节点(头插入,中间插入,尾插入)》

删除节点

  1. 定义一个返回类型为空的函数,参数包括:头结点二级指针,尾节点二级指针,删除节点所在位置)
  2. 定义一个结构体类型的指针作为删除节点标记;
    再定义一个结构体类型的指针p(其作用为:代替头指针遍历链表)
  3. 头删除:如果头指针的位置与要删除节点位置相同(if判断)
    将删除标记指向头指针
    头指针指向头指针的下一个
    释放删除标记所在节点的空间
    使用完后,将删除标记再次赋空
    return;
  4. 中间删除:将p指向头指针的地址
    如果. p的下一个不为空(while循环)
    判断:p的下一个的位置与删除节点所在的位置是否相同
    如果相同,p的下一个指向删除标记
    p的下一个指向p下一个的下一个
    释放删除标记所在节点的空间
    使用完后,将删除标记再次赋空
    此时编写 尾删除
    {
    如果p的下一个为空 那么删除标记所指向的是尾节点
    p指向尾节点
    }
    return;
    注意:while循环结束之前,记得p地址后移

详细代码如下:(确保

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值