Java:从“链接列表”中删除所有元素
|
在Java中,如何在不使用现有的“ 0”方法的情况下删除链表中的所有元素?此练习的灵感来自电话采访中收到的一个问题。
说我可以用C做到这一点
void DeleteAllElement( ListElement **head ) {
ListElement *deleteMe = *head;
while( deleteMe ) {
ListElement *next = deleteMe->next;
delete deleteMe;
deleteMe = next;
}
*head = NULL;
}
谢谢
没有找到相关结果
已邀请:
4 个回复
蓄荣糖些
因此,假设我们有类ѭ3class,它也具有
函数...
如果我们不将“ 6”节点设为私有,则可以简单地执行我发布的第一个代码段。
邪罗逢确胃
的实例:
如果您正在谈论任何“ 9”的实例:
请记住,ѭ11是可选操作。但是,根据列表的实现,这可能会非常可怕。对于12英镑,这会更好:
另一种选择是迭代列表并在每个元素上调用call14 ...这也是可选操作。 (但是再次,对于某些列表实现来说,这可能是非常低效的。) 如果您在谈论自定义链接列表类,那么答案取决于您声明列表类内部数据结构的方式。 我怀疑如果访问者提到了“ 0”方法,那么他们期望在标准Java收集框架(而不是自定义链接列表类)的上下文中得到答案。
告耸
首先要注意的是这是用于向前和向后遍历的双链表,并且会积极清除所有引用。不确定为什么这样做会很愉快,因为GC会以任何方式清除它们,而
会拾取另一个线程中的所有更改。实际上,它实际上应该首先执行modCount。 为了进行比较,这是ArrayList.clear();。
掏得透垦滩
或者看这个例子。