Ctrl K

Самый богатый уровень дерева

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

Суммы по уровням: 2, затем -4 + 9 = 5, затем 6 + (-1) + 3 = 8. Самая большая на уровне 3.

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

Уровни 1 и 2 дают по 5, уровень 3 — -5. При равенстве берём уровень повыше, то есть 1.

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

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