Чтобы вставить узел в начало связанного списка в JavaScript для проблемы HackerRank, вы можете использовать несколько методов. Вот несколько подходов:
Метод 1: создание нового узла и обновление ссылки на заголовок
function insertNodeAtHead(head, data) {
const newNode = new SinglyLinkedListNode(data);
newNode.next = head;
return newNode;
}
Метод 2. Изменение существующего головного узла
function insertNodeAtHead(head, data) {
if (head === null) {
head = new SinglyLinkedListNode(data);
} else {
const newNode = new SinglyLinkedListNode(data);
newNode.next = head;
head = newNode;
}
return head;
}
Метод 3. Использование синтаксиса класса ES6
class Node {
constructor(data) {
this.data = data;
this.next = null;
}
}
function insertNodeAtHead(head, data) {
const newNode = new Node(data);
newNode.next = head;
return newNode;
}
Метод 4. Использование рекурсии
function insertNodeAtHead(head, data) {
if (head === null) {
return new SinglyLinkedListNode(data);
}
const newNode = new SinglyLinkedListNode(data);
newNode.next = insertNodeAtHead(head.next, data);
return newNode;
}
Метод 5. Изменение головы без создания нового узла
function insertNodeAtHead(head, data) {
const newHead = new SinglyLinkedListNode(data);
newHead.next = head;
return newHead;
}