|
Technical Interview Questions
.Net Interview Questions
C++ Interview Questions
Unix Interview Questions
.........More
Download e-Books
C Interview Questions e-book
Aptitude Interview Questions
C/C++ Aptitude Questions
C Aptitude Questions
.........More
Online Quiz
C
Online Quiz
C++
Online Quiz
.........More
|
|
Home >
C Interview Questions >
Can you tell me how to check whether a linked list is circular ?
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.
Have a Question ?
post your questions here. It
will be answered as soon as possible.
|