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
What happens in insertion sort?
Given an unsorted linked list, and without using a temporary buffer, write a method that will delete any duplicates from the linked list?
Why do we use insertion sort?
Does treemap allow null values?
What is queue example?
What are the different types of collections?
What is a pseudocode example?
Which programming language is best for data structures?
What is stack algorithm?
Why is quicksort so fast?
Which interfaces are implemented by concurrentskiplistset?
State the advantages of using infix notations?
What is data algorithm?
Can we extend an array after initialization?
What happens when arraylist is full?