Wenn ich das richtig sehe, müsste der Algorithmus z/6 zurückgeben. Du gehst ja jeden Knoten durch und erhälst dabei immer zwei Wege des selben Kreises, ist ja ungerichtet. Sprich bei den Knoten x,y,z hättest du ja als gefundene Kombinationen: xyz,xzy,yxz,yzx,zxy,zyx

Alternativ könnte man alle gefundenen Kreisknoten in eine Liste speichern und dann in der if-Anweisung noch abfragen, wenn ein Kreis gefunden wurde, ob alle drei zugehörigen Knoten bereits erfasst wurden.

Von der Laufzeit her müsste es aber gleich bleiben.