input: 
  def dropLeafNodes(head):
      """
      Given a Huffman tree, drop all its leaf nodes.
      >>> dropLeafNodes(None)
      None
      >>> dropLeafNodes(buildHuffmanTree([('a', 5), ('b', 9), ('c', 12), ('d', 13), ('e', 16), ('f', 45)]))
      <main internal node of Huffman tree without leaf nodes>
      """
      # If node is not None and doesn't have any children
      if head and not head.left and not head.right:
          return None
  
      # Don't change anything if head is None
      if not head:
          return None
  
      # Recursively call dropLeafNodes on left and right subtrees
      head.left = dropLeafNodes(head.left)
      head.right = dropLeafNodes(head.right)
  
      # Return head of the modified tree
      return head
  
output:     # If both children are None, it means the current node is a leaf node
      if not head.left and not head.right:
          return None
  
      # Return the modified head
      return head