input: Write a function to delete a certain element from a linked list. The function should take a node object as input and delete it from the linked list, if it exists. If the node is not found in the linked list, the function should return without making any changes. If the linked list is empty, the function should also return without making any changes.
  
  
  def deleteNode(self, node):
      temp = self.head
      if temp is not None:
          if temp == node:
              self.head = temp.next
              temp = None
              return
      while temp is not None:
          if temp == node:
              break
          prev = temp
          temp = temp.next
      if temp is None:
          return
      prev.next = temp.next
      temp = None
  
  
  assert deleteNode(LinkedList.head) == None
  assert deleteNode(LinkedList(Node(1)).head) == None
  assert deleteNode(LinkedList(Node(2)).head) == None
  assert deleteNode(LinkedList([Node(1), Node(2)]).head) == None
  assert deleteNode(LinkedList([Node(1), Node(2), Node(3)]).head) == None
  
  ### Explanation:
  1. If the head node itself is the node to be deleted, update the head to the next node and return.
  2. Traverse the linked list to find the node to be deleted.
  3. If the node is found, unlink it from the list.
  4. If the node is not found, return without making any changes.
output: 
  def deleteNode(self, node):
      temp = self.head
      if temp is not None:
          if temp == node:
              self.head = temp.next
              temp = None
              return
      while temp is not None:
          if temp == node:
              break
          prev = temp
          temp = temp.next
      if temp is None:
          return
      prev.next = temp.next
      temp = None
  