Ctrl K

НОД между соседями

Средняя
Дана голова head односвязного списка натуральных чисел. Между каждыми двумя соседними узлами вставьте новый узел, значение которого — наибольший общий делитель значений этих соседей. Вставки делаются только между исходными узлами: новые узлы между собой не сравниваются. Верните голову получившегося списка.
Пример 1
head=list_node([12, 8, 9]) → [12, 4, 8, 1, 9]

НОД(12, 8) = 4, НОД(8, 9) = 1.

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

НОД(5, 25) = 5, НОД(25, 25) = 25.

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

Соседей нет — список не меняется.

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

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