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
Write an algorithm for inserting and deleting an element from doubly linked list?
What is the use of data structure in real life?
What is difference between set and map?
Explain what are the major data structures used in the hierarchical data model?
How do you clear a stack?
What is difference between hashmap and linkedhashmap?
Why we use linked list?
What is the method to find the complexity of an algorithm?
What is list data structure?
How will you check the validity of an expression containing nested parentheses?
What is impact of signed numbers on the memory?
Are sets sorted?
Is int a data structure?
What is comparable interface?
What are the tasks performed while traversing a binary tree?