Ctrl K

Вырезать середину списка

Средняя
Дана голова head односвязного списка из n узлов. Удалите из него средний узел и верните голову получившегося списка. Средним считается узел с индексом n // 2 при нумерации с нуля. Например, при n = 1, 2, 3, 4, 5 это узлы с индексами 0, 1, 1, 2, 2. Попробуйте обойтись одним проходом по списку.
Пример 1
head=list_node([6, 2, 9, 4, 1]) → [6, 2, 4, 1]

В списке 5 узлов, средний — с индексом 5 // 2 = 2, это значение 9.

Пример 2
head=list_node([3, 8, 5, 7]) → [3, 8, 7]

Узлов 4, средним считается индекс 4 // 2 = 2 — значение 5.

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

Единственный узел и есть средний; после удаления список пуст.

Ограничения
  • 1 ≤ n ≤ 10⁵
  • 1 ≤ значение узла ≤ 10⁵
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиУбрать k-й узел с конца СредняяХвост списка — в начало СредняяОтсортированный список без повторов СредняяРазделить список вокруг опорного числа СредняяСписок, сложенный с двух концов Средняя
загружаем Python…
Вход
head=list_node([6, 2, 9, 4, 1])
Ожидается
[6, 2, 4, 1]

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