如何删除自定义链接列表中的所有节点?

时间:2013-01-03 18:15:01

标签: java

我是否可以通过此代码段删除要删除的链接列表的所有节点?如果不是那么怎么可能一次删除所有节点!

我的代码是

EditNode mynode=start;
while(mynode!=null){
    mynode.editnext=null;
    mynode=mynode.editnext;
}

需要帮助!提前谢谢......

2 个答案:

答案 0 :(得分:4)

您的代码无效,因为您将mynode.editnext设置为null,然后尝试引用它。所以这不会起作用。

要删除链表中的所有节点,请在Java中清除头指针。 Java将垃圾收集其余部分。

start = null;

请注意,此答案适用于您的自定义链接列表。在生产中,您应该使用LinkedList的Java实现,它具有.clear()方法。这是处理列表的一种更清晰的方式。

这是因为您可能有指向列表中某个项目的杂散指针,这将保留对列表其余部分的引用并防止垃圾回收。您不应将类似editnext属性的组织结构构建到数据结构中。它们应该是单独的类。

要清除每个节点中的所有指针,请使用以下代码:

EditNode mynode;
while (start != null){
    mynode = start.editnext;
    start.editnext = null;
    start = mynode;
}

答案 1 :(得分:0)

您是否检查了LinkedList的clear()方法?

public void clear() - 删除此列表中的所有元素。此调用返回后列表将为空。