在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;
因此,假设我们有class 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
节点设为私有,则可以简单地执行我发布的第一个代码段。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句