203. Remove Linked List Elements [Easy] [Linked List]
题意
Remove all elements from a linked list of integers that have value val.
删除链表中等于给定值 val 的所有节点。
Example:
Input: 1->2->6->3->4->5->6, val = 6 Output: 1->2->3->4->5
思路
遍历所有节点,同时保留每个节点的上一个节点,当遇到节点值是 val 时,删除该节点。为了方便操作,定义了一个伪头节点。
# Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = x # self.next = None class Solution(object): def removeElements(self, head, val): """ :type head: ListNode :type val: int :rtype: ListNode """ dummy = ListNode(0) dummy.next = head p = dummy while p.next: if p.next.val == val: p.next = p.next.next else: p = p.next return dummy.next