美文网首页
203: Remove Linked List Elements

203: Remove Linked List Elements

作者: Jonddy | 来源:发表于2018-03-03 14:24 被阅读0次
题目要求:

Remove all elements from a linked list of integers that have value val.


Example:

Given:1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val= 6
Return: 1 --> 2 --> 3 --> 4 --> 5


解题思路:
  • 需要临时头节点
  • 遍历链表:while....

# Time:  O(n)
# Space: O(1)
# Definition for singly-linked list.
# class ListNode:
#     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(float("-inf"))
       dummy.next = head
       prev, curr = dummy, dummy.next
       
       while curr:
           if curr.val == val:
               prev.next = curr.next
           else:
               prev = curr
           
           curr = curr.next
       
       return dummy.next

相关文章

网友评论

      本文标题:203: Remove Linked List Elements

      本文链接:https://www.haomeiwen.com/subject/bzutfftx.html