У меня путаница в следующем коде: -
Класс Node: -
class Node
{
int data;
Node next;
Node(int n)
{
data=n;
next=null;
}
}
Класс LinkedList: -
class LinkedList
{
Node head;
void insertLinkedList(int n)
{
Node newNode=new Node(n);
if(head==null)
{
head=newNode;
}
else
{
Node ptr=head;
while(ptr.next!=null)
{
ptr=ptr.next;
}
ptr.next=newNode;
}
}
Первоначально head
- это ноль. При вызове функции insertLinkedList(1)
возникает ситуация: -
newNode.data = 1
newNode.next = null
head.data = 1
head.next = null
После второго вызова функции insertLinkedList(2)
Ожидаемая ситуация: -
newNode.data = 2
newNode.next = null
head.data = 2
head.next = null
Но фактическое значение head.next
не равно нулю. Вместо этого он хранит ссылку на первый узел.
Может ли кто-нибудь помочь мне лучше понять это?