1. 链表的基础知识
什么是链表: 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 链表由一个个结点组成,每个结点包括两个部分:
- 存储的数据域
- 存储下一个结点地址的指针域
一张图表示链表
链表的代码实现
2. 链表的使用
2.1插入结点
2.1.1顺序插入—— 添加到链表的尾部
同样的操作,优雅一点,封装一下
因为指针引用的原因,所以最后得到的 p 其实就是 list 这个链表的最后一位,所以最后 p.next = new ListNode(value) 其实就是给 list 的最后一个结点的 next 添加 new ListNode(value)。
2.1.2 中途插入
搞懂了上面的顺序插入,那么中途插入也很简单
其他的复杂操作基本上都是基于此,理解了以后其实也没什么难的。
2.2 删除结点
玩会了插入节点,删除结点也很简单。
给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。
再来点 leetcode 的题,删除排序链表中的重复元素
难度升级!
这一题重点标出来了,不理解可以画图来帮助自己理解
2.3 查找
简单题,快慢指针轻松搞定
难度再升级
一步一步,从链表开始整起!尽量保持日更,周末放大招~ 大家一起学会数据结构与算法,刷透 leetcode