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