简单删除链表中的元素题目:给你一个链表的
头节点 head和一个整数 val,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。
虚拟头节点
注意:return 头结点的时候,别忘了 return dummyNode->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 # cur是当前位置,让当前位置位于虚拟节点处
while(cur.next != None): # 如果下一个节点不是链表结尾
if (cur.next.val == val): # 判断:如果下一个位置的val与题目给定的val相等
cur.next = cur.next.next # 让当前位置跳到下下一个位置处
else:
cur = cur.next # 否则,当前位置往前移动一个位置
return dummy_head.next # 返回虚拟头结点的下一个位置(也就是新的头结点的位置)