Ctrl K

Разделить список вокруг опорного числа

Средняя
Дан односвязный список head и целое число pivot. Переставьте узлы так, чтобы все узлы со значением меньше pivot шли раньше узлов со значением больше или равным pivot. Внутри каждой из двух групп узлы должны сохранить исходный взаимный порядок. Верните голову получившегося списка. Пустой список остаётся пустым.
Пример 1
head=list_node([6, 2, 9, 1, 5]), pivot=5 → [2, 1, 6, 9, 5]

Меньше 5 только 2 и 1 — они идут первыми в прежнем порядке, за ними 6, 9, 5 тоже в прежнем порядке.

Пример 2
head=list_node([-3, 4, -3]), pivot=0 → [-3, -3, 4]

Обе −3 меньше нуля и переезжают вперёд, четвёрка остаётся в конце.

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

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