Lo que puedes hacer es una clase Grafo, en los cuales tenga solo 3 nodos, si son grafos supuestamente vas a tener dos apuntadores el izquierdo y el derecho, si es un diagrama de Hasse, si no es ese caso, entonces vas a tener más nodos, después de crear ese insert, lo que haces es un backtracking, en el que le pasas un contador por referencia, y vas probando... Yo la verdad lo que haría es que en cada nodo guardo un contador que me diga cuantos saltos tengo que hacer de un nodo A a un nodo B, como sale en tu ejemplo, por ejemplo sería, que en el nodo F, guardo en una variable cuantos saltos tengo que hacer para llegar a L, y cual es su camino en un string.