Ctrl K

Близкие листья

Средняя
Дан корень root двоичного дерева и число limit. Листом называется вершина без детей. Расстояние между двумя вершинами — число рёбер на единственном пути между ними. Посчитайте, сколько неупорядоченных пар различных листьев находятся на расстоянии не больше limit друг от друга.
Пример 1
root=tree_node([5, 8, 2, 4, None, 9, 1]), limit=3 → 1

Листья — 4, 9 и 1. Путь между 9 и 1 — 2 ребра, а от 4 до 9 и до 1 — по 4 ребра. Подходит одна пара.

Пример 2
root=tree_node([5, 8, 2, 4, None, 9, 1]), limit=4 → 3

То же дерево, но теперь допустимы пути до 4 рёбер — подходят все три пары листьев.

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

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