Ctrl K

Обмен соседей парами

Средняя
Дан односвязный список head. Разбейте его узлы на пары по порядку — первый со вторым, третий с четвёртым и так далее — и в каждой паре поменяйте узлы местами. Если узлов нечётное число, последний остаётся на своём месте. Верните голову получившегося списка. Меняйте сами узлы, перестраивая ссылки next, а не значения внутри них.
Пример 1
head=list_node([4, 8, 15, 16, 23]) → [8, 4, 16, 15, 23]

Меняются пары (4, 8) и (15, 16); узлу 23 пары не хватило, он остаётся в конце.

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

Единственная пара меняется местами.

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

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

Ограничения
  • В списке от 0 до 100 узлов
  • 0 ≤ Node.val ≤ 100
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСложение чисел-списков СредняяСписок, сложенный с двух концов СредняяЛидеры списка СредняяСлияние отсортированных цепочек ЛёгкаяРазворот списка блоками Сложная
загружаем Python…
Вход
head=list_node([4, 8, 15, 16, 23])
Ожидается
[8, 4, 16, 15, 23]

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