Ctrl K

Восстановить ряд по парам соседей

Средняя
Был ряд из n различных целых чисел, но сам ряд потерялся. Сохранились только пары соседей: links — это n - 1 пар, и каждая пара [a, b] означает, что числа a и b стояли в ряду рядом. Для каждых двух соседних чисел ряда есть ровно одна пара, но пары перемешаны, а внутри пары числа могут идти в любом порядке. Восстановите ряд. Его можно прочитать в двух направлениях, поэтому договоримся так: ряд начинается с того крайнего числа, которое встречается раньше, если читать links подряд — первую пару слева направо, затем вторую и так далее.
Пример 1
links=[[7, 3], [5, 9], [3, 5]] → [7, 3, 5, 9]

Ряд — 7, 3, 5, 9 (или наоборот). Первым при чтении links встречается крайнее число 7, поэтому начинаем с него.

Пример 2
links=[[4, 8], [8, -2], [6, 4]] → [-2, 8, 4, 6]

Цепочка: -2 — 8 — 4 — 6. Числа 4 и 8 стоят в середине, а первое встреченное крайнее — -2 (во второй паре), поэтому ответ [-2, 8, 4, 6].

Пример 3
links=[[0, -5]] → [0, -5]

Два числа и одна пара; первое из них, 0, — крайнее.

Ограничения
  • 2 ≤ n ≤ 10⁵
  • len(links) = n − 1, в каждой паре два числа
  • -10⁵ ≤ links[i][j] ≤ 10⁵
  • Все числа ряда различны, и пары действительно описывают какой-то ряд
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиОстановить ветку процессов СредняяСуммы путей в закодированном дереве СредняяСклеить карточки контактов СредняяЦепочки синонимов СредняяПоле, разрезанное чертами Средняя
загружаем Python…
Вход
links=[[7, 3], [5, 9], [3, 5]]
Ожидается
[7, 3, 5, 9]

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