Tengo un árbol (en el sentido de la teoría de grafos), como el siguiente ejemplo:
Este es un árbol dirigido con un nodo inicial (la raíz) y muchos nodos finales (las hojas). Cada uno de los bordes tiene una longitud asignada.
Mi pregunta es, ¿cómo encontrar el camino más largo que comienza en la raíz y termina en cualquiera de las hojas? El enfoque de fuerza bruta es verificar todos los caminos de la raíz y tomar el que tenga la longitud máxima, pero preferiría un algoritmo más eficiente si lo hubiera.