Ctrl K

Самый лёгкий уровень дерева

Средняя
Дан корень root двоичного дерева, в каждом узле записано положительное число. Уровни нумеруются сверху: корень лежит на уровне 1, его дети — на уровне 2 и так далее. Вес уровня — сумма чисел во всех его узлах. Верните номер уровня с наименьшим весом. Если таких уровней несколько, верните тот, что ближе к корню (с меньшим номером).
Пример 1
root=tree_node([20, 9, 4, 1, None, 3, 2]) → 3

Суммы уровней: 20, затем 9 + 4 = 13, затем 1 + 3 + 2 = 6. Самый лёгкий — уровень 3.

Пример 2
root=tree_node([6, 2, 4]) → 1

Оба уровня весят 6: корень и 2 + 4. При равенстве берём уровень выше — 1.

Пример 3
root=tree_node([15, 30, None, 8]) → 3

Суммы 15, 30 и 8 — меньше всего на уровне 3.

Ограничения
  • Количество узлов от 1 до 10⁵
  • 1 ≤ значение узла ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиДерево глазами наблюдателя справа СредняяДерево по столбцам СредняяПервый на нижнем этаже СредняяМаксимум на каждом уровне дерева СредняяВставить уровень в дерево Средняя
загружаем Python…
Вход
root=tree_node([20, 9, 4, 1, None, 3, 2])
Ожидается
3

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