How can one find a cycle in the linked list? IF found how
to recognize the cycle and delete that cycle?
Answer Posted / chethu
Why are you guys moving both the pointers one behind the other?
You can keep a pointer at the header and traverse the other and check if it comes back to header if it does then there is a cycle else there is no cycle..
bool find_cycle(Node* head){
Node* ptr1 = head;
Node* ptr2 = head->next;
while(ptr2 != NULL && ptr2->next != NULL)
{
if(ptr1 == ptr2){
printf("\nClycle present in thr LinkList\n");
return true;
}
ptr2 = ptr2->next->next;
}
return false;
}
This should be more efficient.
Is This Answer Correct ? | 1 Yes | 1 No |
Post New Answer View All Answers
Does treemap allow null values?
What do you mean by balanced trees?
What is heap with example?
Is it possible to make an array volatile in java?
What are red-black trees?
Why concurrenthashmap is fail safe?
Why might quick sort might be better than merge sort?
What is hashing technique?
how to insert a new node in linked list where free node will be available?
How helpful is abstract data type of data structures?
What does quick sort do?
Which data structure is used to perform recursion?
What is the application of queue?
List the area of applications of data structure.
What happens if we try to insert duplicate key in hashmap?