Ctrl K

Обмен с зеркальной позицией

Средняя
Дан односвязный список head и число pos. Найдите pos-й узел от начала списка и pos-й узел от конца (нумерация с единицы) и поменяйте местами их значения. Верните голову списка.
Пример 1
head=list_node([3, 6, 9, 12, 15, 18]), pos=2 → [3, 15, 9, 12, 6, 18]

Второй узел с начала хранит 6, второй с конца — 15. Обмениваем их значения.

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

Второй узел с начала и с конца — один и тот же узел, список не меняется.

Пример 3
head=list_node([40, 50]), pos=1 → [50, 40]

Первый с начала — 40, первый с конца — 50: они меняются местами.

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

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