【发布时间】:2012-09-26 22:23:29
【问题描述】:
假设链表是。调用 reversek(3) 将导致 。我已经编写了可以用作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;
}
我对如何实现反向操作感到困惑,感谢任何帮助。
【问题讨论】:
-
为什么在您的示例中交换了最后 2 个节点值?
-
最后,起始指针必须指向新的数组头部
-
piotrnycz,这不是我的帖子,完全不同。
-
@SKLAK 你的例子不应该是
6,3,1,9,8,4,0,2吗? -
@Mahesh,不,即使是最后两个元素也必须颠倒。
标签: c++ reverse doubly-linked-list