Leetcode练习(Python):链表类:第203题:移除链表元素:删除链表中等于给定值 val 的所有节点。
题目:
移除链表元素:删除链表中等于给定值 val 的所有节点。
思路:
链表的常规题,练过好多次了,双指针,哨兵节点防止头结点被是目标节点。
程序:
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def removeElements(self, head: ListNode, val: int) -> ListNode:
if not head:
return None
origin = ListNode(0)
origin.next = head
index1 = origin
index2 = origin.next
while index2:
if index2.val == val:
index1.next = index2.next
else:
index1 = index1.next
index2 = index2.next
return origin.next