我可以通过这段代码删除链表中的所有节点吗?如果不是那么怎么可能一次删除所有节点!
我的代码是
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/