[英]Reversing Linked List Confusion in Java
在 Java 中反转链表时,我很难理解特定的代码行。方法如下:
public static ListNode reverseList(ListNode head)
{
ListNode prev = null;
while(head != null)
{
ListNode nextNode = head.next;
head.next = prev;
prev = head;
head = nextNode;
}
return prev;
}
我遇到的麻烦是行head.next = prev;
. 当发生这种情况时,我假设 nextNode 的值也会改变,因为它也指向 head.next。 然而,它仍然是一样的。 我知道这与 object 参考文献有关,但我不确定。
这让我感到困惑,因为如果我通过将一个对象指向另一个对象来创建 2 个 ListNode 对象,就像这样:
ListNode test = new ListNode(5);
ListNode test2 = test;
并修改“test”对象的 val 并将其从“test2”打印出来,我得到了相同的精确值,如下所示:
test.val = 8;
System.out.println(test2.val); // this also prints out 8
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.