203. 移除链表元素
如果删除的节点是中间的节点,则问题似乎非常简单。当要删除的一个或多个节点位于链表的头部时,事情会变得复杂。可以通过哨兵节点去解决它,将哨兵节点放到head节点前。
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def removeElements(self, head: ListNode, val: int) -> ListNode:
p = ListNode(0)
p.next = head
q = p.next
preq = p
while q:
if q.val==val:
preq.next = q.next
else:
preq = q
q = q.next
return p.next