Ctrl K

Цепочки вниз с заданной суммой

Средняя
Дан корень двоичного дерева root и целое число total. Посчитайте, сколько в дереве *нисходящих цепочек* с суммой значений вершин, равной total. Нисходящая цепочка — это одна или несколько вершин, где каждая следующая является ребёнком предыдущей. Начинаться и заканчиваться цепочка может где угодно: не обязательно в корне и не обязательно в листе. Цепочки считаются разными, если различаются наборы вершин.
Пример 1
root=tree_node([2, 3, -1, 1, None, 4]), total=3 → 2

Сумму 3 дают две цепочки: одна вершина 3 и цепочка -1 → 4. А, например, 2 → -1 даёт только 1.

Пример 2
root=tree_node([0, 0, None, 0]), total=0 → 6

Три цепочки из одной вершины, две из двух и одна из трёх — всего 6.

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

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