Я предполагаю, что вы пытаетесь найти самый короткий / самый длинный вес с N узлами.Это, вероятно, не оптимально, но из вашего исходного графа вы можете сгенерировать граф состояний с узлами 'N * (# Nodes)', представляющими собой исходный узел и количество предпринятых шагов, и выполнить его с помощью алгоритма кратчайшего пути, например http://en.wikipedia.org/wiki/Dijkstra's_algorithm.
т.е.
A->B->C
\___/
становится
(A,0)->(B,1)->(C,2)
\>(C,1)
Тогда вашим целевым узлом будет узел (B, N) - B с N шагами.Этот подход учитывает циклы в исходном графе, если это не DAG ((X, 0) -> (Y, 1) -> (X, 2))