Я создаю отдельный связанный круговой список, и я, кажется, не понимаю, почему он не работает. Вот мой код. Кто-нибудь поможет мне и укажет, что я делаю неправильно? Я могу добавить первый узел, но я не понимаю, как добавить второй узел. Может ли кто-нибудь показать мне, как его изменить. Я думаю, что мой список проходит бесконечно, поэтому.Единственный Связанный Циркуляр Список Добавить метод
public class CircularList <E> {
private Node<E> head;
private class Node <E>
{
E data;
Node <E> next;
public Node(E data, Node<E> next)
{
this.data = data;
this.next = next;
}
public Node(E data)
{
this.data = data;
this.next = null;
}
}//node
public CircularList()
{
head = null;
}
public void add(E data)
{
Node <E> temp = new Node <E> (data);
if(head==null)
{
head=temp;
temp.next=temp;
System.out.println(head.next.data);
}
else
{
Node<E> temp2 = head.next;
while(temp2!=head)
{
if(temp2.next==head)
{
temp2.next=temp;
temp.next=head;
}
temp2=temp2.next;
}
}
}
Проблемы в том, что после добавления первого узла вы обнаружите, что head == head.next, который в основном является проверкой, которую вы делаете в то время. Если не быть частью цикла, просто используйте while для перемещения в последнем узле и сделайте добавление снаружи. – XecP277