线性结构之链表

链表操作小技巧:
(1)指针传入,申请空间要判断是否为空
(2)插入删除操作从头结点开始,需要改变的节点是操作节点的前一个节点
(3)正常操作遍历链表,借助参数k来判断位置,遍历时不要忘记 t = t ->next

  1. 链表的初始化(实质是初始化头结点)
    在这里插入图片描述
  2. 链表的插入
    在这里插入图片描述
    在这里插入图片描述
  3. 链表的遍历
    在这里插入图片描述
  4. 链表的长度
    在这里插入图片描述
  5. 指定位置查找元素
    在这里插入图片描述
  6. 指定元素查找位置
    在这里插入图片描述
  7. 指定元素查找前驱
    在这里插入图片描述
  8. 指定元素查找后继
    在这里插入图片描述
  9. 删除节点
    在这里插入图片描述
    在这里插入图片描述
  10. 逆序链表
    在这里插入图片描述
  11. 清空链表(实质是删除除头结点以外的所有节点)
    在这里插入图片描述
  12. 释放链表
    在这里插入图片描述

面试题:一个单向链表,不知道头节点,一个指针指向其中的一个节点,问如何删除这个指针指向的节点?
答:将这个指针指向的next节点值copy到本节点,将next指向next->next,并随后删除原next指向的节点
所以设指向待删除节点的指针为p,设其后节点为q;
q=p->next;
temp = q->data;
q->data = p->data;
p->data = temp;
p->next = q->next;
free(q);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值