I'll give an answer based on a set of assumptions about what you are asking.
I'm guessing your formatting got messed up and you are using a singly-linked-list built from a node struct that has one pointer called "next."
I also assume that you have a pointer to the first element of the list, called Root.
Next, I assume that your algorithm consists of storing a copy of root, then walking the list to see if you get back to root.
This would work in a case like:
A -> B -> C -> D -> E //and E -> A.
But would not work if
A -> B -> C -> D -> E //and E -> B.
One way would be to mark each node visited as you walk along, either by adding a new field into the struct, or keeping a hashTable, then see if you get a repeat element.
(You could actually just add every tenth node into the hashtable, but check each visited node against the hashtable for duplicates).
If you know ahead of time how many elements are in the linked-list (and it isn't being modified), simple walk that many times and see if the next node is null.