输入:head = [1,2,6,3,4,5,6], val = 6
输出:[1,2,3,4,5]
思路:
定义一个虚拟head,防止删除的那个结点是head,所以定义一个dummy_head = ListNode(next = head)
while循环,当cur.next不为空时:
如果cur的next等于val:那把cur的next指向cur next的next,这样就删除了cur的next
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def removeElements(self, head: Optional[ListNode], val: int) -> Optional[ListNode]:
dummy_head = ListNode(next = head)
cur = dummy_head
while cur.next != None:
if (cur.next.val == val):
cur.next = cur.next.next
else:
cur = cur.next
return dummy_head.next