/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
ListNode newNode = null;
ListNode nxt = head.next;
head.next = newNode;
newNode = head;
head = nxt;
這裏是我的想象,當我看到這一點:如何引用Java中的引用?
說我有一個結構
其中------->
意味着指向(在內存)
head -------> 1->2->3->4->5->6
那麼這意味着
ListNode nxt = head.next -------> 2->3->4->5->6
然後當你這樣做:
head.next = newNode
head -------> 1->NULL
那麼應該不是nxt
成爲?
nxt -------> NULL
由於您更改了nxt
指向的內容?
但你並沒有改變什麼'nxt'指向。 –
'nxt'不指向'head.next'。 'head.next'和'nxt'是指向同一個對象的獨立引用。改變一個不會影響另一個。順便說一句,爲什麼'newNode == NULL'? – shmosel
用另一種方式表達 - '='指定一個引用;它不會修改被引用的對象。 –