leetcode203.移除链表元素

112 阅读1分钟

203.移除链表元素

删除链表中= val 的所有节点。

输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5
class Solution:
    def removeElements(self, head: ListNode, val: int) -> ListNode:
        dummy = ListNode(-1)  # 初始化哨兵节点用于伪头
        dummy.next = head
        p = dummy  # p记录当前节点
        while p.next:
            if p.next.val == val:
                p.next = p.next.next
            else:
                p = p.next
        return dummy.next  # 返回从head开始的扫描结果
"""
哨兵节点广泛应用于树和链表中,如伪头、伪尾、标记等,它们是纯功能的,通常不保存任何数据,
其主要目的是使链表标准化,如使链表永不为空、永不无头、简化插入和删除。在这里哨兵节点将被用于伪头。
"""