Ctrl K

Вершина весит столько же, сколько её потомки

Средняя
Дан корень root двоичного дерева. Потомки вершины — все вершины ниже неё: дети, дети детей и так далее. Если потомков нет, их сумма считается равной 0. Посчитайте, у скольких вершин значение равно сумме значений всех их потомков.
Пример 1
root=tree_node([12, 5, 1, 3, 2, None, 1]) → 3

Потомки корня в сумме дают 5 + 1 + 3 + 2 + 1 = 12 — подходит. У вершины 5 потомки 3 и 2, сумма 5 — подходит. У вершины 1 единственный потомок 1 — тоже подходит. Листья 3, 2 и 1 не равны нулю. Ответ 3.

Пример 2
root=tree_node([7, None, 4, None, 2]) → 0

У 7 потомки дают 6, у 4 — 2, у листа 2 — 0. Совпадений нет.

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

У обеих вершин сумма потомков равна 0, как и значение.

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

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