我正在编写一个 Java 函数来就地反转链表。我是 Java 新手,未能成功调试以下函数中的错误。IDE 返回一个我似乎无法弄清楚的NullPointerException 。任何帮助将非常感激。
public listNode reverseLinkedList(listNode head)
{
listNode reversedLinkedList = head;
listNode temp = null;
while (reversedLinkedList != null) {
reversedLinkedList.setNext(temp);
temp = reversedLinkedList;
reversedLinkedList = reversedLinkedList.getNext();
}
return reversedLinkedList;
}
为了测试,我已经用 8 个链接节点初始化了一个链接列表。在上面的函数中,我试图在每个节点之间交换下一个指针并reversedLinkedList
沿着链表移动指针。
编辑:有些人建议我使用调试器来确定NullPointerException
发生的位置。我已经这样做了。它发生在循环reversedLinkedList = reversedLinkedList.getNext();
的第二次迭代的行中while
。
我用 8 个指针初始化了链表以进行测试。循环,而while
不是去第二个节点,而是看到一个null
指针。它可能与temp变量有关,但我不确定。