反向链表(LeetCode #206) 难度:简单 概念:迭代和递归方法。 合并两个排序列表(LeetCode #21) 难度:简单 概念:链表遍历和合并技术。 从列表末尾删除第 N 个节点 **(LeetCode #19) **难度:中等 概念:两指针技术(慢指针和快指针)。 链表循环 **(LeetCode #141) **难度:简单 问题:检测链表是否包含环。 概念:Floyd 循环检测算法(乌龟和兔子)。 链表循环 II **(LeetCode #142) **难度:中等 问题:在链表中找到循环开始的节点。 概念:Floyd循环检测,慢速和快指针的交汇点。 两个数字相加(LeetCode #2) 难度:中等 问题:给定两个代表两个非负整数的非空链表,将这两个数字相加。 概念:链表遍历和带进位的加法。 两个链表的交集(LeetCode #160) 难度:简单 问题:找到两个链表相交的节点。 概念:两指针技术和链表长度。 回文链表(LeetCode #234) 难度:简单 问题:检查链表是否是回文。 概念:慢指针和快指针,反转列表的后半部分。 展平多级双向链表(LeetCode #430) 难度:中等 问题:展平多级双向链表。 概念:递归和链表遍历。 排序列表(LeetCode #148) 难度:中等 问题:在 O(n log n) 时间和 O(1) 空间中对链表进行排序。 概念:链表上的合并排序。 重新排序列表(LeetCode #143) 难度:中等 问题:通过交替开头和结尾的节点来重新排序链表。 概念:链表操作,反转列表的后半部分。 旋转列表(LeetCode #61) 难度:中等 问题:将链表向右旋转k位。 概念:列表长度、旋转节点。 13.使用随机指针复制列表(LeetCode #138) 难度:中等 问题:链表的深度复制,其中每个节点都有一个随机指针。 概念:HashMap 或恒定空间克隆技术。 成对交换节点 **(LeetCode #24) **难度:中等 问题:交换链表中每两个相邻的节点。 概念:递归和指针操作。 从排序列表中删除重复项(LeetCode #83) 难度:简单 问题:从排序的链表中删除重复项。 概念:链表遍历和就地修改。 奇偶链表 **(LeetCode #328) **难度:中等 问题:将所有奇数节点分组在一起,然后是偶数节点。 概念:链表重排。 k 组中的反向节点 **(LeetCode #25) **难度:难 问题:一次反转k组中的节点。 概念:递归和链表操作。 将链表拆分为多个部分(LeetCode #725) 难度:中等 问题:将链表分割成k个部分。 概念:链表遍历和分区。