これは、リンクされたリストで実装されている辞書について話しているときのアルゴリズム設計マニュアルからのものです。
1 つは、「挿入時にlast->next
まだ NULL に等しいかどうかを確認する」という部分です。なぜそれを確認する必要があるのでしょうか?要素を挿入している場合、最後の項目が正しく NULL を指しているかどうかにどのように影響しますか?私たちは実装を正しく行っているのではないでしょうか? 次のようなことを言うことはできません:
last->next = nodeToInsert;
last = last->next;
なぜそれがうまくいかないのですか?
次に、最後から 2 番目の段落は、片方向リンク リストの最後の項目を削除し、新しい最後の項目を識別しなければならない場合について話しているのでしょうか? そして、(O(n) の複雑さで) 最後から 2 番目の項目にトラバースし、それを最後に設定し、前の最後を削除するだけでしょうか? そして、これを既存の削除メソッドと混ぜ合わせて、それが最後のアイテムかどうかのケースを追加するだけですか?