/**
* 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'は同じオブジェクトを指す別々の参照です。一方を変更しても他方には影響しません。 Btw、なぜnewNode == NULL'ですか? – shmosel
別の言い方をすると、 '='は参照を割り当てます。参照されているオブジェクトは変更されません。 –