Код Senior Связные списки обновлено

Перестановка по чётности позиций

Условие

Переставь узлы так, чтобы сначала шли стоящие на нечётных позициях (считая с 1), затем на чётных. Относительный порядок внутри групп сохранить, доп. памяти не выделять.

Что проверяют тесты

  • переставляет

  • чётная длина

  • короткие списки

Как подойти

Расщепление списка на две цепочки за один проход с последующей склейкой. Порядок присваиваний жёсткий: сначала продвигаем нечётный, потом чётный - иначе теряется ссылка. Проверка even && even.next закрывает обе чётности длины.

Подсказки: 2
  1. Веди два хвоста и перекидывай узлы через один.
  2. Голову чётной цепочки надо запомнить до начала перестановки.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.