链表合并

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有结点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4

链表节点删除

给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 示例 1: 输入: 1->1->2 输出: 1->2 示例 2: 输入: 1->1->2->3->3 输出: 1->2->3

链表删除重复节点

给定一个排序链表,删除所有含有重复数字的结点,只保留原始链表中 没有重复出现的数字。 示例 1: 输入: 1->2->3->3->4->4->5 输出: 1->2->5 示例 2: 输入: 1->1->1->2->3 输出: 2->3

删除链表的倒数第几个节点(快慢指针加多指针)

给定一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个结点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。

链表反转

定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL

局部反转链表(缓存前置节点)

反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 1 ≤ m ≤ n ≤ 链表长度。 示例: 输入: 1->2->3->4->5->NULL, m = 2, n = 4 输出: 1->4->3->2->5->NULL

链表是否有环(flag)

给定一个链表,判断链表中是否有环。 示例 1: 输入:[3,2,0,4](链表结构如下图) 输出:true


链表(题目) - 图1

链表获得环的位置(双指针)

给定一个链表,返回链表开始入环的第一个结点。 如果链表无环,则返回 null。 示例 1:

输入:head = [3,2,0,-4](如下图) 输出:tail connects to node index 1 解释:链表中有一个环,其尾部连接到第二个结点。

链表(题目) - 图2