如何删除列表中的所有节点

时间:2019-02-27 14:37:57

标签: java singly-linked-list

public void deleteAll() {
    if(head==null) {
        System.out.println("list already empty");
    }
    else {
        Node temp=head; Node del;
        while(temp.next!=null) {
            del=temp.next;
            temp=null;
            temp=del;
        }
        System.out.println("all nodes deleted");
    }
}

这是不使用参数即可删除链表中所有节点的方法。

1 个答案:

答案 0 :(得分:3)

public void deleteAll() {
    head = null;
}

您忘记将head设置为空。

由于垃圾收集,列表中的所有节点都不再可引用,将被垃圾收集。

将变量设置为null不会产生实际效果。将字段设置为null可能会使对象(值)无法访问并且可以免费进行垃圾回收。