我需要从(自定义)LinkedList中删除(),将最后一个迭代项设置为null。有两种情况,一种是前者是头部,一种是不是头部。节点是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--;
}
}
}
答案 0 :(得分:0)
如果您的上一个不是头部(代码中的第二种情况),您应该在prev
之前修复上一个节点的下一个链接。否则,它将指向prev
。