首先,我需要一个解释而不是解决方案。正如您从代码中看到的,我正在尝试将MovieNode插入到MovieList中。该方法在MovieList类中。 “列表”是我保留我的MovieNodes的地方。如何在插入后在链表中建立连接
public void insert(Movie movie, int index)
{
MovieNode node = new MovieNode(movie);
MovieNode element;
MovieNode current = list;
while(current.previous != null)
current = current.previous;
element = current; // first node in the list
for(int n = 1; n < index; n++)
element = element.next; // determines where to put new node
node.next = element;
element.previous.next = node;
}
上面的方法似乎工作。但是,当我改变这条线
element.previous.next = node;
与这一个;
element = node;
插入后链接列表没有变化。在我看来,element.previous.next与元素本身是一样的,因为当我们用元素替换元素时,我们也改变了列表中元素之前的节点的后继。我们将继任者指向我们的新元素,即节点。我对这个问题很陌生,所以我很抱歉我可能犯的错误。
感谢您的解释。现在我更了解它。 – Riemann 2013-05-05 20:24:26
不客气。我刚读了你对欧根的回答的评论。你是对的,你只在正向连接节点。这是双向链接的双向链表,通常与这种类型的列表你应该保持对两端的引用。 – Anthony 2013-05-05 20:42:47
再次感谢。根据你的回答,我只写了删除方法,它工作得很好。我实际上不明白在Java中的引用,直到我看到你的解释:)。 – Riemann 2013-05-05 20:49:43