链表反向不起作用....?

时间:2012-05-10 01:17:10

标签: java linked-list

我知道这是一个分钟代码。我无法理解为什么我的链表反转无效。 有人可以在下面的代码中帮我修复我的反向方法。

//Reverse a single linked list
public Node reverse()
{
    return reverse(root);
}
private Node reverse(Node node)
{
        Node previous = null;  
        Node current = node;  
        Node forward;  

        while (current != null) 
    {  
            forward = current.next;  
            current.next = previous;  
            previous = current;  
            current = forward;  
        }  
    return previous;  
}

对此的任何输入都会有所帮助

谢谢!!!

3 个答案:

答案 0 :(得分:0)

假设做作业......

编写简单测试:0个项目列表,1个项目列表,2个项目列表,10个项目列表。确保每个工作都有效 - 将缩小错误并学习编写单元测试。

答案 1 :(得分:0)

您确定使用reverse()的返回值来进行迭代而不是root吗?

答案 2 :(得分:0)

我很确定它应该是

return root = reverse(root);

(你的反向逻辑是正确的,但是如果root仍然指向列表的旧根,那么你将得到一个1元素的链表。)