Я сейчас изучаю Linked List, я рассмотрел некоторые вопросы здесь в stackoverflow, geeksforgeeks, и я просто хочу уточнить, правильное ли мое понимание. Также у меня есть несколько вопросов после того, как я покажу свою визуализацию.
Вот простая java программа для представления связанного списка
public class LinkedList {
Node head;
public static void main (String [] args){
LinkedList list = new LinkedList();
list.head = new Node(1);
Node second = new Node(2);
Node third = new Node(3);
list.head.next = second;
second.next = third;
}
}
class Node{
int data;
Node next;
Node(int d){
data = d;
next = null;
}
}
Это создаст LinkedList (1,2,3)
Из того, что я понимаю, приведены шаги по созданию LinkedList, исправьте меня, если я ошибаюсь
- У вас есть 2 класса
class LinkedList
и class Node
- Внутри
class LinkedList
Я объявил объект, который можно использовать позже, который Node head;
- Внутри
class Node
есть другое объявление объекта Node next;
и конструктора, который будет принимать данные (которые я создал набор узлов) - Возвращаясь к
class LinkedList
Я создаю экземпляр object list
, который будет контейнером для узлы, так что это как объект class Node
внутри объекта class LinkedList
Вот моя визуализация:
Мои вопросы:
- Почему я не могу просто создать голову как
Node head = new Node(1);
вместо Node head;
И, наконец, почему я должен объявить Node next;
внутри конструктора Node и почему я должен установить значение next = null;
?