Ctrl K
Курс · шаг 41 из 79К шагуДальше

Самый длинный путь в дереве

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

Самый длинный путь 7 → 8 → 3 → 2 → 5: в нём 4 ребра, и он вообще не проходит через корень 6.

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

Путь -4 → 1 → 9 — два ребра.

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

Одна вершина — путь без рёбер, длина 0.

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

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