← Назад к вопросам
Может ли первый элемент LinkedList сослаться на предыдущий элемент?
2.0 Middle🔥 141 комментариев
#Коллекции
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
LinkedList: может ли первый элемент сослаться на предыдущий
Краткий ответ: В стандартной LinkedList — нет, первый элемент (head) не имеет ссылки на предыдущий элемент. Но в двусвязной структуре это возможно.
Односвязная LinkedList
// В Java стандартная LinkedList — двусвязная
// Но в учебных целях рассмотрим односвязную:
public class SingleLinkedList<T> {
private Node head;
private class Node {
T data;
Node next; // Только ссылка вперёд
Node(T data) {
this.data = data;
}
}
// Первый элемент:
// head.next → второй элемент
// head.previous → NULL (нет ссылки назад)
}
Двусвязная LinkedList (DoublyLinkedList)
public class DoublyLinkedList<T> {
private Node head;
private Node tail;
private class Node {
T data;
Node next; // Ссылка на следующий
Node previous; // Ссылка на предыдущий
Node(T data) {
this.data = data;
}
}
}
Структура Java LinkedList
// Java LinkedList является двусвязной:
// [null] ← head → [data1] ← → [data2] ← → [data3]
public class LinkedListStructure {
public static void main(String[] args) {
LinkedList<String> list = new LinkedList<>();
list.add("A");
list.add("B");
list.add("C");
// Структурно (примерно):
// head.previous = null
// head.next → второй элемент
// second.previous = head
// second.next = third
// ...
}
}
Итерация в обе стороны
public class BidirectionalIteration {
public static void main(String[] args) {
LinkedList<String> list = new LinkedList<>();
list.add("First");
list.add("Second");
list.add("Third");
// Forward iteration
System.out.println("Forward:");
for (String s : list) {
System.out.println(s);
}
// Backward iteration (благодаря двусвязности)
System.out.println("Backward:");
Iterator<String> desc = list.descendingIterator();
while (desc.hasNext()) {
System.out.println(desc.next());
}
}
}
Вывод: Java LinkedList использует двусвязную структуру, поэтому каждый элемент (кроме head и tail) имеет ссылки и вперёд, и назад.