Ctrl K

Размер плотного дерева

Лёгкая
Дан корень root двоичного дерева, заполненного плотно: все уровни, кроме, может быть, последнего, заполнены целиком, а вершины последнего уровня стоят подряд, начиная с самого левого места. Верните количество вершин в дереве. Обойти все вершины — это O(n). Используйте форму дерева и уложитесь быстрее.
Пример 1
root=tree_node([4, 9, 2, 7, 1]) → 5

Два верхних уровня заполнены целиком (3 вершины), на нижнем уровне две вершины прижаты влево: всего 5.

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

Пустое дерево — ноль вершин.

Пример 3
root=tree_node([6, 3, 8, 0, 5, 2, 9]) → 7

Все три уровня заполнены: 1 + 2 + 4 = 7.

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

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