移除链表元素-力扣
思路
1.直接在原链表中删除
若要删除头结点,需要单独处理,排除此思路
2. 构造一个虚拟头结点dummy_node
dummy_node的next指向原头结点head
注意最后返回dummy_node.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: ListNode, val: int) -> ListNode:
#构造虚拟结点
dummy_head=ListNode(next=head)
cur=dummy_head
while cur.next != None:
if cur.next.val == val:
#删除cur.next结点
cur.next=cur.next.next
else:
cur=cur.next
return dummy_head.next