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 - 特殊字符被 tomcat cookie 解析器拒绝

java - Spring 4 MVC 区域设置已更改,但 JSP 对此没有响应

java - 匹配多个括号之间的字符串

java - 无法在数据库中保存 clob 数据类型(Struts、Spring、Hibernate)

java - Java 中的可见性关键字实际上是方法,就像在 Ruby 中一样吗?

java - derby 使用 liquibase 进行数据迁移

java - 这个程序有什么问题。如果一个数字是完美的,例如 num 是 6,它应该打印 1*2*3。使用 BigInteger

java - 如何在java中的url中发送加号运算符

java - Active Directory 允许使用禁用的帐户创建 InitialContext

java - 是否可以在我的电脑上设置外部目录(作为库)的路径?安卓