我通过对LeetCode中链表部分的免费题目进行归类、整理,归纳出如下刷题顺序,希望对大家有所帮助。
在刷题顺序的整理中,我主要遵循了如下规则:
- 在题目分组方面,除综合题外,每组题目的技巧、方法均相似,方便统一学习;
- 在各组题目的顺序方面,总体来说为由易到难,后一组题目比前一组略难一些,方便大家循序渐进;
- 在每组题目的顺序方面,均为由易到难(难度为我依据自己的理解,对LeetCode给出的难度进行微调的结果),方便大家循序渐进。
LeetCode链表部分刷题顺序
第1组:设计链表
- 707:【中等】设计链表类
第2组:链表的基本操作
- 83:【简单】删除排序链表中的重复元素,使每个元素只出现一次
- 203:【简单】移除链表中值为指定值的节点
- 206:【简单】反向当前链表中的元素
- 1290:【简单】将二进制链表表示的数转换为整数
- 237:【简单】移除链表中的指定节点
- 2:【中等】将使用链表表示的、最高位位于链表末端位置的两个数相加
- 21:【简单】合并两个有序链表
- 328:【中等】将链表中的所有奇数编号的节点和偶数编号的节点分别排在一起
- 86:【中等】分隔链表中大于和小于特定值的节点
- 61:【中等】将链表中的每个节点向右移动k个位置
第3组:快慢针技巧
- 876:【简单】寻找链表的中间节点
- 234:【简单】判断链表是否为回文链表
- 141:【简单】判断链表中是否有环
- 160:【简单】寻找两个链表的交点
- 142:【中等】寻找链表中进入环的第一个节点
第4组:双指针技巧
- 24:【中等】两两交换链表中相邻的节点
- 92:【中等】反转从位置m到位置n部分的链表
- 19:【中等】删除链表中的倒数第N个节点
- 82:【中等】删除排序链表中的重复元素,只保留没有重复出现的元素
- 725:【中等】将链表分隔为k个连续的部分
- 143:【中等】重新排列链表并实际交换结点
- 25:【困难】K个一组翻转链表
第5组:特殊链表
- 138:【中等】复制带随机指针的链表
- 430:【中等】将多级双向链表扁平化
第6组:综合题
- 1367:【中等】判断二叉树中是否存在指定链表
- 147:【中等】对链表进行插入排序
- 148:【中等】对链表进行时间复杂度为O(NlogN)的排序(可用归并排序实现)
- 817:【中等】统计链表中链表组件的数量
- 445:【中等】将使用链表表示的、最高位位于链表开始位置的两个数相加
- 1019:【中等】生成链表中的下一个更大结点的列表
- 1171:【中等】从链表中删去总和值为零的连续节点
- 109:【中等】将有序链表转换为高度平衡的二叉搜索树
- 23:【困难】合并K个排序链表