【发布时间】:2014-12-26 08:31:44
【问题描述】:
我正在学习 Java 和数据结构。
我做了一个删除所有链表的方法。代码如下:
public class LinkedList {
...
public void purge() {
SLLNode nextNode, iterator = headNode;
while(iterator != null) {
nextNode = iterator.getNext();
iterator = null;
iterator = nextNode;
}
}
...
}
这里是主要方法:
public class SinglyLinkedList {
public static void main(String[] args) {
SinglyLinkedList test = new SinglyLinkedList();
test.insert(1, 0); // insert(data, position)
test.insert(2, 1);
test.insert(3, 2);
test.insert(4, 1);
test.purge();
test.printList(); // Still prints elements!
}
}
所以在所有插入之后,列表是:1-> 4 -> 2 -> 3,但是 purge() 方法不会删除元素 - 方法 printList() 仍然会打印链接列表中的值。但我可以像这样清除链表:
public void new_purge() {
headNode = null;
}
但是 purge() 方法看起来没有问题.. 可能是缺乏对 Java 的理解,但是为什么 purge() 方法在这里不起作用?
【问题讨论】:
-
为什么定义 LinkedList 但实例化 SinglyLinkedList?
-
@emecas 哎呀这只是复制和粘贴错误哈哈
标签: java linked-list singly-linked-list