input: Write a function to drop all leaf nodes from a given Huffman tree. If the node is a leaf, return None. Otherwise, recursively process the left and right subtrees and return the modified tree.
  
  def dropLeafNodes(head): 
      
      # 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
  
  assert dropLeafNodes((1, (2, (4, None, None), (5, None, None)), (3, (6, None, None), (7, None, None)))).equals((1, (2, None, None), (3, None, None)))
  assert dropLeafNodes(None) == None
  assert dropLeafNodes((1, None, None)) == None
output: def dropLeafNodes(head): 
      
      # 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