Skip to content

Latest commit

 

History

History
56 lines (44 loc) · 1.59 KB

0203._remove_linked_list_elements.md

File metadata and controls

56 lines (44 loc) · 1.59 KB

Navigation

Links:

  1. https://leetcode.com/problems/remove-linked-list-elements/
  2. https://leetcode-cn.com/problems/remove-linked-list-elements/

Solution 1 想要删除某个节点,就必须找到这个节点的前一个节点

时间复杂度:O(N)
空间复杂度:O(1)
# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def removeElements(self, head, val):
        dummy_head = ListNode(-1)
        dummy_head.next = head

        current_node = dummy_head

        while current_node.next:
            if current_node.next.val == val:
                current_node.next = current_node.next.next
            else:
                current_node = current_node.next

        return dummy_head.next

class Solution:
    def removeElements(self, head, val):
        dummy_head = ListNode(-1)
        dummy_head.next = head

        current_node = dummy_head

        while current_node.next:
            if current_node.next.val == val:
                current_node.next = current_node.next.next
                continue
            
            current_node = current_node.next

        return dummy_head.next