class ListNode:
    def __init__(self, value=0, next=None):
        self.value = value
        self.next = next

def filter_list_nodes(head: ListNode, key: int) -> ListNode:
    
    dummy = ListNode(0)
    dummy.next = head
    
   
    current = dummy
    
    while current.next is not None:
       
        if current.next.value == key:
            current.next = current.next.next
        else:
           
            current = current.next

   
    return dummy.next


def list_to_linkedlist(lst):
    head = ListNode(0)
    current = head
    for value in lst:
        current.next = ListNode(value)
        current = current.next
    return head.next


def linkedlist_to_list(head):
    result = []
    while head:
        result.append(head.value)
        head = head.next
    return result

# Examples to test the implementation
example_list1 = list_to_linkedlist([1, 2, 6, 3, 4, 5, 6])
filtered_list1 = filter_list_nodes(example_list1, 6)
print(linkedlist_to_list(filtered_list1)) 

example_list2 = list_to_linkedlist([])
filtered_list2 = filter_list_nodes(example_list2, 1)
print(linkedlist_to_list(filtered_list2)) 

example_list3 = list_to_linkedlist([7, 7, 7, 7])
filtered_list3 = filter_list_nodes(example_list3, 7)
print(linkedlist_to_list(filtered_list3))  

example_list4 = list_to_linkedlist([10, 20, 30, 20, 50])
filtered_list4 = filter_list_nodes(example_list4, 20)
print(linkedlist_to_list(filtered_list4)) 

example_list5 = list_to_linkedlist([1, 1, 2, 3, 1])
filtered_list5 = filter_list_nodes(example_list5, 1)
print(linkedlist_to_list(filtered_list5))  