【发布时间】:2012-10-23 15:10:00
【问题描述】:
我正在尝试反转一个链表:
void LinkedList::reverseList()
{
Node *next=_head;
Node *prev=0;
while(next!=0)
{
Node *tmp=next->_next;
next->_next=prev;
prev=next;
next=tmp;
}
}
假设列表是:4->3->2->1
打印列表时,我只看到1(打印功能不错)。
有什么帮助吗?
谢谢
【问题讨论】:
-
对,是C++,给Node一些方法。让他们交换他们在列表中的位置而不交换他们的值。然后找到列表的两端并交换它们,沿着你的方式工作,直到你到达两端的相同节点或刚刚交换的节点。
-
你从不分配
_head,是吗? -
在
while循环之后添加_head = prev;。 -
我试过了,没用。我仍然得到 >>1 作为输出。
标签: c++ linked-list reversing