leetcode题解

翻转链表

两个一组

k个一组

用p记录待翻转链表的前面一个节点,t记录待翻转链表的起始节点。

初始化a指向待翻转链表的第一个节点,b指向第二个节点,然后用for循环去翻转链表。

for循环结束后,翻转就完成了一半了。此时的p代表上一段的末尾,t代表该段的开头,a代表该段的末尾,b代表下一段的开头。这时候如何翻转就很简单了。如下图所示。


CleanShot 2026-08-08 at 00.45.00@2x.png

模版

单链表

int e[N], ne[N], idx;

void (int k, int x )
{
  e[idx] = x, ne[idx] = ne[k], idx ++;
}

void add(int k, int x)
{
}

void remove(int k)
{

}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注