input: Write a function to delete a certain element from a linked list. If the element is successfully deleted, return True, otherwise return False. If the linked list is empty, return False.
  
  ### Function Signature:
  
  def delete_node(linked_list, node):
  
  
  ### Assertions:
  
  # Create linked list nodes
  node1 = Node(4)
  node2 = Node(5)
  node3 = Node(1)
  node4 = Node(9)
  
  # Link nodes
  node1.next = node2
  node2.next = node3
  node3.next = node4
  
  # Initialize linked list with node1 as head
  linked_list = LinkedList()
  linked_list.head = node1
  
  # Delete an existing node
  assert delete_node(linked_list, node3) == True
  # Node3 should no longer be in the list
  assert node2.next == node4
  
  # Try to delete a node that doesn't exist in the list
  assert delete_node(linked_list, Node(10)) == False
  
  # Try to delete the head node
  assert delete_node(linked_list, node1) == True
  # Head should now be node2
  assert linked_list.head == node2
  
  # Create an empty linked list
  empty_list = LinkedList()
  assert delete_node(empty_list, Node(1)) == False
  
output: def delete_node(linked_list, node):
      if not linked_list.head:
          return False
      
      if linked_list.head == node:
          linked_list.head = linked_list.head.next
          return True
      
      current = linked_list.head
      while current.next:
          if current.next == node:
              current.next = current.next.next
              return True
          current = current.next
      
      return False