why it give wrong answer?
explain how to remove detect loop?
i have doubt in second while loop of start and loop
how it remove detect loop
import java.util.*;
public class LinkedList {
public class Node
{
int data;
Node next;
public Node(int data)
{
this.data=data;
}
}
private int size;
private Node head;
private Node tail;
public void add(int d)
{
Node nn=new Node(d);
if(head==null)
{
head=nn;
tail=nn;
}
else
{
tail.next=nn;
tail=nn;
}
}
public void display()
{
Node temp=head;
while(temp!=null)
{
System.out.print(temp.data+" ");
temp=temp.next;
}
}
public void dloop()
{
Node slow=this.head;
Node fast=this.head;
while(fast!=null || fast.next!=null)
{
slow=slow.next;
fast=fast.next.next;
if(slow==fast)
break;
}
if(slow==fast)
{
Node start=head;
Node loop=slow;
while(start.next!=loop.next)
{
start=start.next;
loop=loop.next;
}
loop.next=null;
}
}
public static void main(String args[]) {
Scanner kb=new Scanner(System.in);
LinkedList list=new LinkedList();
int a=kb.nextInt();
while(a!=-1)
{
list.add(a);
a=kb.nextInt();
}
list.dloop();
list.display();
}
}