Программа курса:
Внимание! Решать задачи может только авторизованный
пользователь. Пройдите регистрацию на сайте.
Задача 3: Удаление элементов связанного списка
Напишите определение функции remove_elements(head, val), которая принимает два аргумента:
head— голова связанного списка (представленного в виде массива).val— значение, которое нужно удалить из всех узлов списка.
Функция должна вернуть новую голову связанного списка, в котором все узлы с заданным значением val удалены. Если таких узлов нет, список остается без изменений.
Описание объекта ListNode:
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = nextListNode — это объект, представляющий узел в односвязном списке. Каждый узел имеет два атрибута:
val— значение, которое хранится в узле. Это может быть любое значение (например, целое число).next— указатель на следующий узел в списке. Если узел является последним, то этот атрибут равенNone.
Пример структуры списка:
1 -> 2 -> 6 -> 3 -> 4 -> 5 -> 6 -> None
Примеры:
Пример 1:
Ввод:
head = [1, 2, 6, 3, 4, 5, 6]
val = 6
Объяснение:
- Начальный список:
1 -> 2 -> 6 -> 3 -> 4 -> 5 -> 6 -> None - Мы хотим удалить все узлы со значением
6. - После первого удаления первого узла с
6:1 -> 2 -> 3 -> 4 -> 5 -> 6 -> None - После второго удаления второго узла с
6:1 -> 2 -> 3 -> 4 -> 5 -> None
Выход:
head = [1, 2, 3, 4, 5]
Пример 2:
Ввод:
head = []
val = 1
Объяснение:
- Список пуст, так что никаких изменений не происходит.
- Возвращается пустой список.
Выход:
head = []
Пример 3:
Ввод:
head = [7, 7, 7, 7]
val = 7
Объяснение:
- Начальный список:
7 -> 7 -> 7 -> 7 -> None - Все узлы содержат значение
7, поэтому все узлы будут удалены. - Возвращается пустой список.
Выход:
head = []
Вы должны Войти или Зарегистрироваться чтобы оставлять комментарии