在 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/