sentinel ノードは Linked List を空にせず、ヘッドレスにしないようにする。

アルゴリズムは

sentinel ノードをセットする。

curr と prev のポインターを設定する。

curr が null でない場合、ループする。

curr.val が 削除する値の場合、

class Solution:
    def removeElements(self, head: Optional[ListNode], val: int) -> Optional[ListNode]:
        sentinel = ListNode(next=head)
        prev, curr = sentinel, head

        while curr:
            if curr.val == val:
                prev.next = curr.next
            else:
                prev = curr
            curr = curr.next

        return sentinel.next