Вот у нас есть класс, описывающий элемент списка:
class Node
{
public int data;
public Node next;
public Node(int d)
{
data = d;
next = null;
}
}
И есть метод добавления нового элемента в список:
class Solution
{
static Node tail;
static Node head;
public static Node Add(int data)
{
Node node = new Node(data);
if (head == null)
{
head = node;
}
else
{
tail.next = node;
}
tail = node;
return tail;
}
}
Так вот, в методе добавления мы никак не указываем элементу head.Next кто он такой, но при выполнении строчки
tail.next = node;
вместе с tail.Next устанавливается и head.Next. Почему так происходит? Ведь это 2 разные переменные.