链表是一种线性数据结构
链表与其他数据结构的比较:
如果你需要经常添加或删除结点,链表可能是一个不错的选择。
如果你需要经常按索引访问元素,数组可能是比链表更好的选择。
实现
常用技巧
双指针
两个指针从不同位置出发:一个从始端开始,另一个从末端开始;
两个指针以不同速度移动:一个指针快一些,另一个指针慢一些。
哑结点
在首结点前添加哑结点dummy,可以方便处理头结点。
转化为数组
链表的缺点是不能随机存储,取尾元素要从头遍历,可以转化为数组。
解决问题1
解决问题2
369.给单链表加一
379. 电话目录管理系统
426. 将二叉搜索树转化为排序的双向链表
430. 扁平化多级双向链表
445. 两数相加 II
708. 循环有序列表的插入
725. 分隔链表
817. 链表组件
1019.链表中的下一个更大节点
1171.从链表中删去总和值为零的连续节点