1

我是否可以删除我的链表的所有节点以通过我的这段代码删除?如果没有,那么如何一次删除所有节点!

我的代码是

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

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

4

2 回答 2

5

您的代码不起作用,因为您正在设置然后尝试引用它mynode.editnextnull所以这行不通。

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

start = null;

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

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

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

EditNode mynode;
while (start != null){
    mynode = start.editnext;
    start.editnext = null;
    start = mynode;
}
于 2013-01-03T18:17:43.233 回答
0

你检查过 LinkedList 的clear()方法吗?

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

于 2013-01-03T18:17:28.653 回答