我正在創建一個單獨鏈接的圓形列表,我似乎無法理解它爲什麼不起作用。這是我的代碼。有人會幫助我,並指出我做錯了什麼?我能夠添加第一個節點,但我不知道如何添加第二個節點。有人可以告訴我如何改變它。我認爲我的名單無休止地遍歷,這就是爲什麼。單鏈式圓形列表添加方法
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 2014-10-31 14:07:57