LinkedList remove(),next,prev和head

时间:2013-11-05 10:02:58

标签: java

我需要从(自定义)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--;
    }
}
}

1 个答案:

答案 0 :(得分:0)

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