203: Remove Linked List Elements

题目要求:

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容