Ctrl K

Наименьшее слово от листа к корню

Средняя
Дан корень root двоичного дерева. В каждом узле записано число от 0 до 25, которое обозначает букву: 0 — a, 1 — b, ..., 25 — z. Выберите любой лист (узел без детей) и прочитайте буквы, поднимаясь от него к корню — получится слово. Верните лексикографически наименьшее из всех таких слов. Напомним, что при лексикографическом сравнении строки сравниваются по первой различающейся букве, а если одна строка — начало другой, меньше более короткая: "ab" меньше "aba".
Пример 1
root=tree_node([2, 0, 1, None, None, 3, 0]) → 'abc'

Листьев три, их слова: "ac", "dbc" и "abc". Наименьшее — "abc": уже во второй букве "b" меньше "c".

Пример 2
root=tree_node([0, 1]) → 'ba'

Единственный лист — "b", от него к корню читается "ba".

Пример 3
root=tree_node([25, 0, 0, 1]) → 'az'

Слова "baz" и "az"; "az" меньше, хотя в нём меньше букв — сравнение идёт по первой различающейся букве.

Ограничения
  • Количество узлов от 1 до 8500
  • 0 ≤ Node.val ≤ 25
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиВсе пути от корня до листьев ЛёгкаяВсе пути до листьев с заданной суммой СредняяДерево из скобочной записи СредняяДерево в скобочной записи СредняяМаршрут по дереву Средняя
загружаем Python…
Вход
root=tree_node([2, 0, 1, None, None, 3, 0])
Ожидается
'abc'

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