Имея односвязный список, напишите функцию для удаления данного узла. Ваша функция должна соответствовать следующим ограничениям:
1) Он должен принять указатель на начальный узел в качестве первого параметра, а узел должен быть удален в качестве второго параметра, т. Е. Указатель на головной узел не является глобальным.
2) Он не должен возвращать указатель на головной узел.
3) Он не должен принимать указатель на указатель на головной узел.
Вы можете предположить, что Связанный список никогда не станет пустым.
Пусть имя функции будет deleteNode (). В простой реализации функции необходимо изменить указатель заголовка, когда удаляемый узел является первым узлом. Как обсуждалось в предыдущем посте , когда функция изменяет указатель головы, функция должна использовать один из указанных подходов , мы не можем использовать ни один из этих подходов здесь.
Решение
Мы явно обрабатываем случай, когда удаляемый узел является первым узлом, мы копируем данные следующего узла в заголовок и удаляем следующий узел. Случаи, когда удаленный узел не является головным узлом, можно нормально обработать, найдя предыдущий узел и изменив следующий за предыдущим узлом. Ниже приводится реализация.
|
С
|
Python 3
|
Джава
|
C #
|
Выход:
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
Пожалуйста, напишите комментарии, если вы обнаружите, что приведенные выше коды / алгоритмы неверны, или найдете другие способы решения той же проблемы.
Рекомендуемые посты:
- Найти середину данного связанного списка в C и Java
- Программа для n-го узла из конца связанного списка
- Напишите функцию для получения N-го узла в связанном списке
- Учитывая только указатель / ссылку на узел, который будет удален в односвязном списке, как вы его удаляете?
- Определить петлю в связанном списке
- Напишите функцию для удаления связанного списка
- Напишите функцию, которая подсчитывает, сколько раз данное int встречается в связанном списке.
- Перевернуть связанный список
- Учитывая только указатель на узел, который будет удален в односвязном списке, как вы его удаляете?
- Напишите функцию, чтобы получить точку пересечения двух связанных списков
- Функция, чтобы проверить, является ли односвязный список палиндромом
- Большая проблема рекурсии по списку деревьев.
- Клонировать связанный список со следующим и случайным указателем | Комплект 1
- Эффективный для памяти двусвязный список
- С учетом связного списка, который отсортирован, как вы будете вставлять в отсортированном виде
0.00 (0%) 0 votes