Home »

Linked Lists — Can you tell me how to check whether a linked list is circular?

Question ListCategory: cLinked Lists — Can you tell me how to check whether a linked list is circular?
alisataylore190 author asked 9 years ago
1 Answers
jully882 author answered 8 years ago

Create two pointers, and set both to the start of the list. Update each as follows:
while (pointer1) {

pointer1 = pointer1->next;

pointer2 = pointer2->next;

if (pointer2) pointer2=pointer2->next;

if (pointer1 == pointer2) {

print ("circular");

}

}

If a list is circular, at some point pointer2 will wrap around and be either at the item just

before pointer1, or the item before that. Either way, its either 1 or 2 jumps until they meet.

Please login or Register to Submit Answer