Java 正在反转链接列表,但未解析第一个节点

Java 正在反转链接列表,但未解析第一个节点,java,linked-list,Java,Linked List,我编写了一个链表实现,它以firstNode为首,以lastNode结束。我正试图扭转这个列表,除了firstNode,它做得很好。假设列表中有从firstNode到lastNode的以下数据:“一”、“二”、“三”、“四”、“五”。当我运行reverseMePlz()方法时,将显示以下内容:四、三、二、一。原来的firstNode(一个)现在是lastNode,原来的lastNode(五个)不是成为firstNode,而是两个应该是第二个node的节点变成了firstNode,所以本质上它删除

我编写了一个链表实现,它以firstNode为首,以lastNode结束。我正试图扭转这个列表,除了firstNode,它做得很好。假设列表中有从firstNode到lastNode的以下数据:“一”、“二”、“三”、“四”、“五”。当我运行reverseMePlz()方法时,将显示以下内容:四、三、二、一。原来的firstNode(一个)现在是lastNode,原来的lastNode(五个)不是成为firstNode,而是两个应该是第二个node的节点变成了firstNode,所以本质上它删除了原来的lastNode,应该是firstNode。这是我的密码:

public void reverseMePlz()
{
    Node nextNode = null;

    Node currentNode = firstNode;

    while (currentNode.next != null)
    {
        nextNode = currentNode.next;
        currentNode.next = currentNode.previous;

        firstNode = currentNode;
        currentNode = nextNode;

    }

    lastNode = currentNode;

}

while
循环的条件更改为

while(currentNode!=null)
这是密码

public void reverse(Node headNode) {
        Node nextNode = null;
        Node previousNode = null;
        Node currentNode = headNode;

        while(currentNode!=null) {
            nextNode = currentNode.next;
            currentNode.next = previousNode;
            currentNode.previous = nextNode;
            previousNode = currentNode;
            currentNode = nextNode;
        }
        headNode = previousNode;
}

我想出来了。这就是我的解决方案:

public void reverseMePlz()
    {
        Node nextNode = null, currentNode = firstNode, first = firstNode;

        while (currentNode.next != null)
        {
            nextNode = currentNode.next;

            currentNode.next = currentNode.previous;
            currentNode.previous = nextNode;

            firstNode = currentNode;
            currentNode = nextNode;

        }

        lastNode.next = firstNode;
        firstNode = lastNode;
        lastNode = first;
        firstNode.previous = null;

    }

这是一个双链接列表,对吗?是的,它是双链接的。Node是我的list类中的一个私有类,具有以下实例变量:T data、Node next、Node previous。但是,当您反向运行时,您没有更改“previous”的链接,很高兴您找到了它。删除了我的答案,因为我把某个地方搞砸了。