可能重复:
反转链表的每 k 个节点
假设链表是 <1,3,6,4,8,9,0,2>。调用 reversek(3) 将导致 <6,3,1,9,8,4,2,0>。我已经编写了可以用作reversek 中的辅助函数的reverse 函数。这是我的反向函数,它从给定的起点反转到给定的终点:
void List::reverse(Node * & start, Node * & end)
{
Node *pter = start;
while (pter != NULL)
{
Node *tmp = pter->next;
pter->next = pter->prev;
pter->prev = tmp;
if (tmp == NULL)
{
endPoint = startPoint;
startPoint = pter;
}
pter = tmp;
}
我对如何实现reversek 感到困惑,感谢任何帮助。