不为成仙,只为在这红尘中等你回来。

您现在的位置是:网站首页>>LeetCode

203. Remove Linked List Elements [Easy] [Linked List]

2018年5月8日 23:02 | 分类:LeetCode | 标签: Python LeetCode 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

LeetCode 203. Remove Linked List Elements