input: Write a function to delete a node from a singly linked list given the node to be deleted. The function should handle the case where the node to be deleted is the head node or any other node in the list. If the node to be deleted is not found, the function should simply return. 
  
  def delete_node(ll, nodeToDelete):
      if ll.head == nodeToDelete:
          ll.head = nodeToDelete.next
          return
      current = ll.head
      while current.next is not None and current.next != nodeToDelete:
          current = current.next
      if current.next is not None:
          current.next = current.next.next
  
  assert delete_node(ll, nodeToDelete) == None
  assert delete_node(ll, nodeToDelete) == None
  assert delete_node(ll, nodeToDelete) == None
  assert delete_node(ll, nodeToDelete) == None
  assert delete_node(ll, nodeToDelete) == None
output: def delete_node(ll, nodeToDelete):
      if ll.head == nodeToDelete:
          ll.head = nodeToDelete.next
          return
      current = ll.head
      while current.next is not None and current.next != nodeToDelete:
          current = current.next
      if current.next is not None:
          current.next = current.next.next