Вот пример того, как можно добавить узел в связанный список с помощью рекурсии в JavaScript:
class Node {
constructor(value) {
this.value = value;
this.next = null;
}
}
class LinkedList {
constructor() {
this.head = null;
}
insertNode(value) {
const newNode = new Node(value);
if (!this.head) {
this.head = newNode;
} else {
this._insertNodeRecursive(newNode, this.head);
}
}
_insertNodeRecursive(newNode, currentNode) {
if (!currentNode.next) {
currentNode.next = newNode;
} else {
this._insertNodeRecursive(newNode, currentNode.next);
}
}
}
// Example usage
const linkedList = new LinkedList();
linkedList.insertNode(1);
linkedList.insertNode(2);
linkedList.insertNode(3);
В этом примере у нас есть класс Node, представляющий один узел в связанном списке, и класс LinkedList, который обрабатывает операции в связанном списке. Метод insertNodeдобавляет новый узел в связанный список. Если список пуст, он устанавливает новый узел в качестве головного. В противном случае он вызывает вспомогательный метод _insertNodeRecursive, чтобы рекурсивно найти последний узел в списке и добавить к нему новый узел.
Обратите внимание, что предоставленный код — это лишь один из способов реализации вставки узла в связанный список с использованием рекурсии в JavaScript. Могут существовать альтернативные подходы в зависимости от конкретных требований или вариантов дизайна.