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
Is queue fifo or lifo?
Is it possible to increase size of array?
What do you mean by union-by-weight?
What do u mean by array?
Can you store different types in an array?
How would you reverse characters of an array without using indexing in the array.
Can you override methods of arraylist?
Does hashmap preserve insertion order?
How does hashset work internally in java?
How to inverting a function in sort and searching?
What is nsmutablearray?
What is a bubble sort and how do you perform it?
Explain the term base case?
Define circular list?
How can you insert a node in a random location of the linked list?