Java:删除链表中的所有元素

标签 java linked-list

在 Java 中,如何使用已经可用的clear() 方法删除链表中的所有元素?这个练习的灵感来自电话采访中收到的一个问题。

假设我可以在 C 中做到这一点

void DeleteAllElement( ListElement **head ) {  
    ListElement *deleteMe = *head;  
    while( deleteMe )  {  
        ListElement *next = deleteMe->next;  
        delete deleteMe;  
        deleteMe = next;  
    }  
    *head = NULL;  
}

谢谢

最佳答案

Java 有自动垃圾回收,所以你只需要将 Head 引用设置为 null 即可:

myList.headNode = null;

所以,假设我们有类 LinkedList,它也有一个 resetList 函数...

public class LinkedList{
     private Node head;
     public Node find(Key k){ ... }
     public void add(Node n){ ... }
     ...
     public void reset(){ head = null;}
     public static void reset(LinkedList l){l.reset();}
}

如果我们不将 head 节点设为私有(private),我们可以简单地执行我发布的第一个代码片段。

关于Java:删除链表中的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5658465/

相关文章:

c - 链表删除导致 Free Heap block ........ 被释放后在 .... 处修改

python - 如何在Python中构建节点列表后返回元素

java - 将 Web 技术用于 UI

algorithm - 解释为什么与链表的 O(n) 时间相比,访问数组的第 n 个元素可以在常数时间 O(1) 内完成?

c# - 为什么 LinkedList 通常比 List 慢?

c - 创建节点数组后,我无法遍历链接列表

java - 如何正确实现Java匿名类的equals方法?

java - 他们有什么方法可以找到匹配器类的 find 方法的大小吗?在java中

java - 使用样式角色的 GWT Google 可视化柱形图

Java RunTimeException 和 ClassNotFoundException 错误