ウィキペディアの記事にあるように、単一のリンクされたリストの最後で削除するのに O(1) 時間かかる理由がよくわかりません。
単一の連結リストはノードで構成されます。ノードには、ある種のデータと、次のノードへの参照が含まれています。リンク リストの最後のノードの参照が null です。
-------------- -------------- --------------
| data | ref | -> | data | ref | -> ... -> | data | ref |
-------------- -------------- --------------
O(1) の最後のノードを削除できます。ただし、その場合、削除された最後のノードへの参照がまだ含まれているため、新しい最後のノード (前のノード) の参照を null に設定しません。だから私は疑問に思っていました、彼らは実行時間分析でそれを無視していますか? それとも、参照が何も指していないだけなので、それを変更する必要はないと考えられていますか?
無視されなければ、削除は O(n) であると主張するからです。リスト全体を反復処理して、新しく最後のノードに到達し、その参照も null に設定する必要があるためです。二重リンクリストでのみ、実際には O(1) になります。
-編集- たぶん、この観点はもう少し明確になります。しかし、「ノードの削除」は、ノード自体を正常に削除し、以前の参照をnullに設定していると思います。