从链表中删除元素(Java)?

时间:2013-03-31 04:15:43

标签: java linked-list singly-linked-list

我正在尝试创建一个方法,用于从单个链接列表中的包(集合)中删除元素。我目前的方法是没有正确删除东西。如果有重复,它应该只删除第一个。但它只是删除它不应该的东西。我会很感激一些反馈。代码如下。 (我有一个使用数组的版本。但我必须两种方式。)

LinkedBag.java http://pastebin.com/xqZ6Jw3i

BagTest.java http://pastebin.com/359h5A5m

1 个答案:

答案 0 :(得分:1)

我注意到在你的remove()方法中,为了遍历你的链表,你实际上改变了你的实例变量bag,而显然没有做任何努力在最后将它重置为原始状态。所以说你试图删除一个不在链表中的元素。您是否发现您的方法按预期返回false,但是所有元素都已被删除?

不要使用bag来遍历列表。除了currentBag局部变量之外,还要创建一个previousBag局部变量。