我是否可以通过此代码段删除要删除的链接列表的所有节点?如果不是那么怎么可能一次删除所有节点!
我的代码是
EditNode mynode=start;
while(mynode!=null){
mynode.editnext=null;
mynode=mynode.editnext;
}
需要帮助!提前谢谢......
答案 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()
- 删除此列表中的所有元素。此调用返回后列表将为空。