Ctrl K

Развернуть кусок списка

Средняя
Дан односвязный список head и два номера позиций start ≤ end (нумерация узлов с 1). Разверните участок списка с узла номер start по узел номер end включительно, остальные узлы оставьте на местах. Верните голову получившегося списка. Попробуйте справиться за один проход по списку.
Пример 1
head=list_node([7, 3, 8, 1, 6, 2]), start=2, end=5 → [7, 6, 1, 8, 3, 2]

Узлы со 2-го по 5-й — это 3, 8, 1, 6; в обратном порядке получаем 7, 6, 1, 8, 3, 2.

Пример 2
head=list_node([-4, 9]), start=1, end=2 → [9, -4]

Разворачивается весь список.

Пример 3
head=list_node([11, 12, 13]), start=3, end=3 → [11, 12, 13]

Отрезок из одного узла — список не меняется.

Ограничения
  • В списке от 1 до 500 узлов
  • -500 ≤ Node.val ≤ 500
  • 1 ≤ start ≤ end ≤ длина списка
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСложение чисел-списков СредняяУбрать k-й узел с конца СредняяОбмен соседей парами СредняяХвост списка — в начало СредняяОтсортированный список без повторов Средняя
загружаем Python…
Вход
head=list_node([7, 3, 8, 1, 6, 2]), start=2, end=5
Ожидается
[7, 6, 1, 8, 3, 2]

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