Программа Javascript для удаления заданного узла в связанном списке при заданных ограничениях

Опубликовано: 2 Сентября, 2022

Для заданного односвязного списка напишите функцию для удаления заданного узла. Ваша функция должна соответствовать следующим ограничениям:
1) Он должен принимать указатель на начальный узел в качестве первого параметра и удаляемый узел в качестве второго параметра, т. е. указатель на головной узел не является глобальным.
2) Он не должен возвращать указатель на головной узел.
3) Он не должен принимать указатель на указатель на головной узел.
Вы можете предположить, что связанный список никогда не становится пустым.
Пусть имя функции будет deleteNode(). В простой реализации функция должна изменить указатель заголовка, когда удаляемый узел является первым узлом. Как обсуждалось в предыдущем посте, когда функция изменяет указатель заголовка, функция должна использовать один из заданных подходов, здесь мы не можем использовать ни один из этих подходов.
Решение
Мы явно обрабатываем случай, когда удаляемый узел является первым узлом, мы копируем данные следующего узла в заголовок и удаляем следующий узел. Случаи, когда удаленный узел не является головным узлом, можно обработать обычным образом, найдя предыдущий узел и изменив следующий из предыдущего узла. Ниже приведены реализации.

Выход:

Given Linked List: 12 15 10 11 5 6 2 3

Deleting node 10:
Modified Linked List: 12 15 11 5 6 2 3

Deleting first node
Modified Linked List: 15 11 5 6 2 3

Временная сложность: O(n), где n представляет размер данного массива.
Вспомогательное пространство: O(1), дополнительное пространство не требуется, поэтому это константа.

Пожалуйста, обратитесь к полной статье об удалении данного узла в связанном списке с заданными ограничениями для получения более подробной информации!