Ctrl K

Вычистить запрещённые значения

Средняя
Дан массив banned с различными запрещёнными числами и голова head односвязного списка. Удалите из списка все узлы, значения которых встречаются в banned, и верните голову получившегося списка. Оставшиеся узлы должны идти в прежнем порядке. Гарантируется, что хотя бы один узел останется.
Пример 1
banned=[4, 9], head=list_node([9, 2, 4, 4, 7]) → [2, 7]

Убираем все узлы со значениями 9 и 4, остальные сохраняют порядок: 2, 7.

Пример 2
banned=[6], head=list_node([1, 3, 5]) → [1, 3, 5]

Шестёрок в списке нет — он не меняется.

Пример 3
banned=[1, 2], head=list_node([2, 8, 1, 8]) → [8, 8]
Ограничения
  • 1 ≤ len(banned) ≤ 10⁵
  • 1 ≤ banned[i] ≤ 10⁵, все числа различны
  • В списке от 1 до 10⁵ узлов
  • 1 ≤ значение узла ≤ 10⁵
  • Хотя бы одного значения из списка нет в banned
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиОтмеченные отрезки цепочки СредняяСудоку без конфликтов СредняяРазложить анаграммы по группам СредняяНулевые кресты СредняяДерево по прямому и симметричному обходам Средняя
загружаем Python…
Вход
banned=[4, 9], head=list_node([9, 2, 4, 4, 7])
Ожидается
[2, 7]

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 81 тест на сервере, включая скрытые.