【发布时间】:2012-10-06 22:04:49
【问题描述】:
由于我没有机器来测试这个,我在这里需要你的帮助。
如果我分配
L.head = NULL,L会变空,因为有 没有head?如果我分配
L.head = L.next.next(3rd node) 前两个节点 将作为垃圾收集器(假设使用 Java)对吗?
我尝试为下面的照片写一个方法cutToInteger如下,如果我错了,请纠正:
void cutToInteger (IntSLList L , int n){
IntSLList tmp =L.head ;
while( tmp != NULL || !tmp.into.equals(n)){
tmp=tmp.next;
}
L.head = tmp;
}
实现看起来很简单,但节点成为垃圾数据以被删除的逻辑总是让我感到困惑。
更新:这是上面截图的问题
一种方法 void cutToNumber(IntSLList L, int n) 从头开始切割一个整数单链表 L,直到它到达整数 n。如果 n 不在 L 中,则列表为空。
【问题讨论】:
-
我认为我写的方法有错误。
tmp应该复制列表L。 -
回答你的前两个问题:是的,我相信是这样,因为现在没有任何东西引用头节点,因此它变成了垃圾收集。第二个问题的类似概念。
-
我认为 while 循环应该是 while(tmp->next != NULL || !tmp.into.equals(n))
标签: java data-structures garbage-collection linked-list