题目

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。

输出:head = [1,2,6,3,4,5,6], val = 6输入:[1,2,3,4,5]示例 2:输出:head = [], val = 1输入:[]示例 3:输出:head = [7,7,7,7], val = 7输入:[]

思路

删除节点,让该节点的前一个节点,指向它的下一个节点,跳过它本人,达到删除该节点的目标。
设置两个指针,cur指向以后遍历节点,pre指向它的前一个节点

def removeElements(self, head: ListNode, val: int) -> ListNode:    # 设置一个虚构节点放在头节点前    dummy = ListNode()    dummy.next = head    # 设置两个指针 cur指向以后遍历节点,pre指向以后的前一个节点    pre = dummy    cur = head    while cur:        if cur.val == val:            pre.next = cur.next        else:            pre = cur        cur = cur.next            return dummy.next