Ответ
Узел (или звено, node
) — это фундаментальный строительный блок связного списка. Каждый узел содержит две основные части:
- Данные (
Value
): полезная информация, которую хранит узел. - Указатель (
Next
): ссылка на следующий узел в списке. У последнего узла этот указатель равенnil
.
Реализация в Go (односвязный список)
В Go узел обычно реализуется с помощью структуры, которая содержит поле с данными и указатель на саму себя.
// Node представляет узел в односвязном списке
type Node struct {
Value int
Next *Node
}
// LinkedList хранит указатель на первый узел (голову списка)
type LinkedList struct {
Head *Node
}
Пример создания списка 1 -> 2
:
// Создаем узлы
node1 := &Node{Value: 1}
node2 := &Node{Value: 2}
// Связываем их: node1 указывает на node2
node1.Next = node2
// Создаем список и указываем его голову
list := &LinkedList{Head: node1}
Вариация: узел двусвязного списка
В двусвязном списке узел также хранит указатель на предыдущий элемент, что позволяет перемещаться по списку в обе стороны.
// DoublyLinkedNode представляет узел в двусвязном списке
type DoublyLinkedNode struct {
Value int
Next *DoublyLinkedNode
Prev *DoublyLinkedNode // Указатель на предыдущий узел
}