У меня есть дерево (в смысле теории графов), например, в следующем примере:
Это направленное дерево с одним начальным узлом (корень) и множеством конечных узлов (листья). Каждому ребру назначена длина.
Мой вопрос: как найти самый длинный путь, начинающийся у корня и заканчивающийся у любого из листьев? Подход грубой силы состоит в том, чтобы проверить все пути корневых листьев и выбрать путь с максимальной длиной, но я бы предпочел более эффективный алгоритм, если он есть.