《31》削除:メソッド remove(補足)

実録:はじめてのプログラミング記事一覧
《31》削除:メソッド remove(補足)

《著》小粒ちゃん+α《監修》小泉ひよ子とタマゴ倶楽部
2009年2月9日(月)

削除:メソッド remove(補足)

指定された引数 value と同じ値を持つノードを、リストから削除する様子を、図解とともに解説します。

class myList(object):
    ...
    def remove(self, value):
        prev, node = self.head, self.head.next
        while node:
            if node.item==value:
                prev.next = node.next    # (1)
                del node                 # (2)
                break
            prev, node = node, node.next
        else:
            ...


  • (1)直前のノードの後続 prev.next は、削除したいノードの後続 node.next と同じ値に再設定します。すると、削除したい直前のノードの後に、削除したい直後のノードが続くようになります。
  • (2)削除したい要素を含む、オブジェクト node を削除します。

Tips

Last updated♪09/03/19