枝が重みを持つ無向グラフに対する、最長経路問題を解くプログラムを作成中です。
隣接行列array_cを作り、枝で結ばれていない成分には0を入れています。
開始ノードをaとし、最長経路を入れる配列をmax_cとし、max_c[i] < max_c[a] + array[a][i]
ならmax_c[i]を更新そして再帰的に・・・と考えているのですが、同じノードを2回通らない
ようにするにはどうすればいいのか?
再起関数内で、どの条件でreturnすれば良いのか?など、問題だらけです。

答えを貼り付けられるのは逆に困ってしまうので、最長経路について詳しく解説されている
サイトがあればお教えいただきたいです。
最短経路やセールスマン、最長片道切符は見つかるのですが・・・。