203. 移除链表元素

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

你可能感兴趣的:(203. 移除链表元素)