0

最後に反復された項目を null に設定して、(カスタム) LinkedList から remove() する必要があります。prev が head の場合とそうでない場合の 2 つのケースがあります。ノードは next、prev、head です。次のコードに問題があるかどうか疑問に思っていましたか? 間にイテレータ変数を設定する必要がありますか? (または、前を空にすることでうまくいきますか?) みんなありがとう!

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

前のノードが先頭でない場合 (コードの 2 番目のケース)、前のノードの次のリンクを修正する必要がありますprev。それ以外の場合は、 を指したままになりますprev

于 2013-11-05T10:14:24.293 に答える