[英]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.