只是快速浏览一下,您的列表似乎不仅被双重链接,而且在末端连接在一起(因此它更像是环而不是列表)。换句话说,如果我要遍历您的列表(包含元素
A, B, C,D),则不会是:
A -> B -> C -> D -> stop
相反,它将是
A -> B -> C -> D -> A -> B -> C -> D -> A -> B ..... etc.
我怀疑这可能就是为什么您遇到无限循环的原因。
我将创建对
DoublylinkedList类中列表的最后一个元素的引用(示例:)
in.last,使用它来获取最后一个元素,并使第一个和最后一个元素链接到任一
null或某种
NullListElementextends ListElement
如果必须将其保留为环形,我仍将添加对列表的最后一个元素的引用,以便您可以说:
if(walker == in.last) break; // stop



