How can one find a cycle in the linked list? IF found how
to recognize the cycle and delete that cycle?
Answer Posted / kamran
As far as answer 2 is concerned..it is not correct because
ptr1 and ptr2 is both pointing towards Head. and below
while loop true at first attempt and both the pointer are
still pointing toward head so at first etration condition
will be true even though there is no loop :)
The modified verision is this
bool find_cycle(Node* head){
Node* ptr1 = head;
Node* ptr2 = head->next;
while(ptr1 != NULL && ptr2 != NULL && ptr2->next != NULL)
{
if(ptr1 == ptr2){
printf("\nClycle present in thr LinkList\n");
return true;
}
ptr1 = prt1->next;
ptr2 = ptr2->next->next;
}
return false;
}
| Is This Answer Correct ? | 18 Yes | 1 No |
Post New Answer View All Answers
What will happen if an array goes out of bounds?
Why is data structure important?
Give the example of validating the parenthesis of expression using stack.
What is unmodifiable list?
Is duplicate allowed in hashmap?
What is array in data structure with example?
Does hashmap sort automatically?
Is copyonwritearraylist thread safe?
Why do we use collections?
Define dynamic data structures?
How do arrays work?
What is sort function?
Explain the uses of b+ tree.
what is the biggest advantage of linked lists?
What is breadth first tree?