Объясненное решение проблемы HackerRank

В сегодняшнем алгоритме мы вставим узел в начало односвязного списка. Вот вызов, который я выбрал из HackerRank:

Имея указатель на заголовок связанного списка, вставьте новый узел перед заголовком. Значение next в новом узле должно указывать на head, а значение data должно быть заменено заданным значением. Вернуть ссылку на новый заголовок списка. Указанный указатель заголовка может иметь значение NULL, что означает, что начальный список пуст.

Проблема проста, перейдем к решению:

  1. Инициализировать класс узла.
  2. Создайте новый узел с заданным значением.
  3. Если список пуст, установите новый узел в качестве головы и верните его.
  4. Если список не пуст, установите следующий новый узел в качестве заголовка, а затем измените указатель заголовка, чтобы он указывал на новый узел.
  5. Верните новый заголовок обновленного связанного списка.

Вышеуказанные шаги проиллюстрированы следующим образом:

Вот мой код на JavaScript:

Учитывая ссылку на заголовок списка, нас просят добавить новый узел в начало списка. Метод принимает два аргумента; заголовок связанного списка и значение для вставки. Сначала мы создаем узел из входного значения, и вновь добавленный узел становится новым заголовком связанного списка после установки его ссылки на предыдущий заголовок данного связанного списка.

Как вы видите в этом примере, очень легко добавить узел в начало связанного списка, и это можно сделать с постоянной или O (1) временной сложностью. Надеюсь, эта статья окажется для вас полезной, спасибо за чтение!