Ctrl K

Однородные поддеревья

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

Однородны три листа, поддерево с корнем в левой тройке (все вершины равны 3) и поддерево правой семёрки. У всего дерева есть и 3, и 7. Ответ 5.

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

Однородны лист 4 слева и лист 1. У правой четвёрки есть ребёнок 1, поэтому ни её поддерево, ни всё дерево не подходят. Ответ 2.

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

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