Ctrl K

Проредить отсортированную цепочку

Лёгкая
Дан односвязный список head, значения в котором идут по неубыванию. Одинаковые значения поэтому стоят подряд. Оставьте от каждой группы одинаковых значений ровно один узел, чтобы каждое значение встречалось в списке один раз. Порядок оставшихся узлов не меняется, так что список остаётся отсортированным. Верните голову получившегося списка.
Пример 1
head=list_node([2, 2, 2, 5, 7, 7]) → [2, 5, 7]

Три двойки сжимаются в одну, две семёрки — тоже; 5 встречается один раз и остаётся как есть.

Пример 2
head=list_node([-3, 0, 4]) → [-3, 0, 4]

Повторов нет, список не меняется.

Пример 3
head=list_node([]) → None

Пустой список остаётся пустым.

Ограничения
  • В списке от 0 до 300 узлов
  • -100 ≤ Node.val ≤ 100
  • Значения в списке идут по неубыванию
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСлияние отсортированных цепочек ЛёгкаяВырезать узлы с заданным значением ЛёгкаяЦепочка задом наперёд ЛёгкаяСимметричная нитка бус ЛёгкаяСередина списка Лёгкая
загружаем Python…
Вход
head=list_node([2, 2, 2, 5, 7, 7])
Ожидается
[2, 5, 7]

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