[英]not understanding how a Linkedlist node pointer points to other nodes?
public class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
所以給出了上面 listnode 類的定義。 如果我做
ListNode node1 = new ListNode(-1);
然后
ListNode node2 = node1;
這是否意味着節點 2 指向節點 1 或節點 1 現在有一個指向節點 2 的指針。
如果我做ListNode node3 = new ListNode(-7); then node2.next = node3;
ListNode node3 = new ListNode(-7); then node2.next = node3;
這是否意味着我們現在有一個 node1->node2->node3 指向這個方向?
在第一個例子中
ListNode node1 = new ListNode(-1);
ListNode node2 = node1;
node1
和node2
現在指向同一個ListNode
對象
System.out.println(node1.equals(node2));
將打印true
而不覆蓋equals()
。
當你做
ListNode node3 = new ListNode(-7);
node2.next = node3;
要指定node3
到next
的類成員node2
,並為此向node1
的一個next
,以及
System.out.println(node1.next.equals(node2.next)); // true
System.out.println("node1: " + node1.next.val + " node2: " + node2.next.val); // node1: -7 node2: -7
要記住的一件事是,當您編寫ListNode node1 = new ListNode(-1)
然后ListNode node2 = node1
,'node1' 和 'node2' 並指向 'new ListNode(-1)'對象。 因此,如果您更改“node1”或“node2”,它將更改指向其他內容的指針。
現在一旦你這樣做
ListNode node3 = new ListNode(-7);
ListNode node2 = node1;
你的node2
仍然指向new ListNode(-1)
對象,因此你最終會得到 -1 -> -7。 對於指針,您將擁有node1 -> ListNode(-1)
、 node2 -> ListNode(-1)
和node3 -> ListNode(-7)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.