Удалить узел K-го связанного списка - PullRequest
0 голосов
/ 08 мая 2020

ВОПРОС

Напишите функцию, которая получает в качестве входных данных головной узел связанного списка целое число k.

Ваша функция должна удалить k-й узел с конца связанного списка и вернуть головной узел обновленного списка.

ПРИМЕР СВЯЗАННОГО СПИСКА

(20) -> (19 ) -> (18) -> (17) -> (16) -> (15) -> (14) -> (13) -> (12) -> (11) -> null

Головной узел будет относиться к узлу (20). Пусть k = 4, поэтому он должен удалить 4-й узел списка, узел (14).

Из нового списка должен быть удален узел (14).

КОД

const linkedList = node => {

let head = node;


}

Я не знаю, как go об этом. Я определяю функцию с узлом в качестве параметра, и мне нужно иметь возможность различать каждый узел и иметь возможность проходить и удалять тот, о котором идет речь.

Любые советы или указатели для начинающих?

1 Ответ

0 голосов
/ 08 мая 2020

Один из способов:

0) Всегда сохранять временную копию заголовка списка

1) Подсчитать общее количество узлов в связанном списке, назовем его n .

2) Допустим, вам нужно удалить узел x th с конца, поэтому узел n-x + 1 th с самого начала.

3) Go до узла nx th и удалить следующий узел (см. Стандартный способ удаления узла в связанном списке).

...