Рекурсивный метод вставки узла в связанный список в JavaScript

Вот пример того, как можно добавить узел в связанный список с помощью рекурсии в 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. Могут существовать альтернативные подходы в зависимости от конкретных требований или вариантов дизайна.