Ctrl K

Двоичные числа на ветках

Лёгкая
Дан корень root двоичного дерева, в каждой вершине которого записан бит — 0 или 1. Путь от корня до любого листа задаёт двоичное число: бит корня — старший, бит листа — младший. Например, путь 1 → 1 → 0 означает 110₂ = 6. Верните сумму чисел по всем путям от корня до листьев.
Пример 1
root=tree_node([1, 0, 1, None, 1]) → 8

Пути: 1 → 0 → 1 даёт 101₂ = 5, путь 1 → 1 даёт 11₂ = 3. Сумма 8.

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

Пути 0 → 1 → 1 = 011₂ = 3 и 0 → 1 = 01₂ = 1. Ведущий ноль ничего не добавляет. Сумма 4.

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

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