Ctrl K

Вершины, равные среднему своего поддерева

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

Корень 6: (6 + 2 + 9 + 3 + 7) / 5 = 27 / 5, с округлением вниз 5 — не подходит. Вершина 2: (2 + 3) / 2 = 2 — подходит. Вершина 9: (9 + 7) / 2 = 8 — нет. Листья 3 и 7 всегда совпадают со своим средним. Ответ 3.

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

Все значения равны, поэтому каждая вершина совпадает со средним своего поддерева.

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

У корня среднее (0 + 1) / 2 = 0 после округления вниз, у листа 1 — 1. Обе вершины подходят.

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

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