Код Senior Деревья обновлено

Диаметр дерева

Условие

Длина самого длинного пути между любыми двумя узлами (в рёбрах). Узел: { value, left, right }.

Что проверяют тесты

  • путь через корень

  • цепочка

  • один узел

  • пустое

Как подойти

Приём «возвращаем одно, копим другое»: рекурсия отдаёт наверх глубину, а максимум пути обновляется побочно. Пытаться вернуть сразу и то и другое можно, но код становится тяжелее. Тем же приёмом решаются максимальная сумма пути и подсчёт хороших узлов.

Подсказки: 2
  1. Функция возвращает глубину, а ответ копит в замыкании.
  2. Путь через узел равен сумме глубин его поддеревьев.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.

Термины по теме