Учитывая свободное дерево, найдите алгоритм, чтобы найти самый длинный путь между двумя узлами, который работает за линейное время.Возможно ли это сделать, если узлы не сохраняют свой уровень?Если да, то как?
Если узлы сохраняют свой уровень, я бы переместил нижний узел вверх по дереву на тот же уровень, что и другой.Чем бы я продолжал двигаться вверх по дереву, пока узлы не перекрываются.Расстояние будет суммой каждого перемещения узла вверх по дереву.