0

我需要从(自定义)LinkedList 中删除(),将最后一个迭代项设置为 null。有两种情况,一种 prev 是 head,一种不是。节点是 next、prev 和 head。我想知道您是否在以下代码中发现任何问题?我需要在两者之间设置迭代器变量吗?(或者清空 prev 会起作用吗?)谢谢大家!

public void remove() { 
if(prev == null) {
    throw new IllegalStateException();
}
else {
    if(prev == head){
        head = head.next;
        prev = null;
        sizeOfList--;
        }
    else {
        prev = null;
        sizeOfList--;
    }
}
}
4

1 回答 1

1

如果您的前一个不是头部(代码中的第二种情况),您应该修复前一个节点的下一个链接 before prev。否则它将指向prev

于 2013-11-05T10:14:24.293 回答