100 дней кода (8 частей серии)
Всем привет. Сегодня день 8 # 100 дней. Получил проблему, ранее заданную Google с легким тегом к нему.
Вопрос в день № 8:
Евгодное дерево (которое означает «Универсальное значение») – это дерево, где все узлы под ним имеют одинаковое значение.
Учитывая root до бинарного дерева, подсчитайте количество унций Unival.
Например, в следующем дереве 5 Unival Subtree:
0 / \ 1 0 / \ 1 0 / \ 1 1
Подход
Прежде чем перейти к главной логике, давайте обсудим о Грубая сила Способ решить это:
- Начиная с корня, мы проверяем, есть ли непосредственные дети одинаковое значение, что и корневой узел, а затем дети непосредственных узлов и так далее.
- Мы повторяем этот процесс для каждого поддерева, заканчивающегося во время принятия процесса.
- Оптимальный способ решить эту проблему заключается в использовании подхода снизу вверх. Сначала мы начинаем с узлов листьев, и переходим к верхним уровням и используем одинарное значение дочернего поддерева, чтобы решить, является ли основное дерево одинарным деревом или нет.
Код Python
Выход
No. of unival subtrees= 5
Чтобы понять рекурсию за настоящим Кодом, пожалуйста, нажмите здесь
Не стесняйтесь обращаться за любым зазором запросов.
Спасибо и ура:)
100 дней кода (8 частей серии)
Оригинал: “https://dev.to/nmreddy1911/day-8-number-of-unival-trees-using-python-5ha4”