Объясненное решение проблемы HackerRank
В сегодняшнем алгоритме мы вставим узел в начало односвязного списка. Вот вызов, который я выбрал из HackerRank:
Имея указатель на заголовок связанного списка, вставьте новый узел перед заголовком. Значение next в новом узле должно указывать на head, а значение data должно быть заменено заданным значением. Вернуть ссылку на новый заголовок списка. Указанный указатель заголовка может иметь значение NULL, что означает, что начальный список пуст.
Проблема проста, перейдем к решению:
- Инициализировать класс узла.
- Создайте новый узел с заданным значением.
- Если список пуст, установите новый узел в качестве головы и верните его.
- Если список не пуст, установите следующий новый узел в качестве заголовка, а затем измените указатель заголовка, чтобы он указывал на новый узел.
- Верните новый заголовок обновленного связанного списка.
Вышеуказанные шаги проиллюстрированы следующим образом:
Вот мой код на JavaScript:
Учитывая ссылку на заголовок списка, нас просят добавить новый узел в начало списка. Метод принимает два аргумента; заголовок связанного списка и значение для вставки. Сначала мы создаем узел из входного значения, и вновь добавленный узел становится новым заголовком связанного списка после установки его ссылки на предыдущий заголовок данного связанного списка.
Как вы видите в этом примере, очень легко добавить узел в начало связанного списка, и это можно сделать с постоянной или O (1) временной сложностью. Надеюсь, эта статья окажется для вас полезной, спасибо за чтение!