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

标签 java

我可以通过这段代码删除链表中的所有节点吗?如果不是那么怎么可能一次删除所有节点!

我的代码是

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

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

最佳答案

您的代码不起作用,因为您将 mynode.editnext 设置为 null,然后尝试引用它。所以那是行不通的。

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

start = null;

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

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

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

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

关于java - 如何删除自定义链表中的所有节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14144720/

相关文章:

java - 在 Eclipse 中生成 GWT MVP 框架

java - mysql 数据库与java的连接

java - 为简单阈值分类器寻找多类阈值

java - 表达式时删除 Kotlin 中的中断

java - 在 Scala 方面需要帮助

java - hibernate - 为mysql连接创建字符串类型的主键

java - 使用drawString显示文本的问题

java - 查找 "youngest"父类(super class)

java - 如何在javafx中获取Path中心的坐标?

java - 边框布局与网格布局冲突