翻转链表
两个一组
k个一组
用p记录待翻转链表的前面一个节点,t记录待翻转链表的起始节点。
初始化a指向待翻转链表的第一个节点,b指向第二个节点,然后用for循环去翻转链表。
for循环结束后,翻转就完成了一半了。此时的p代表上一段的末尾,t代表该段的开头,a代表该段的末尾,b代表下一段的开头。这时候如何翻转就很简单了。如下图所示。

模版
单链表
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)
{
}