input: Write a function to take a Huffman tree and remove all its leaf nodes. The function should return the modified tree without its leaf nodes. If the tree is empty (head is None), the function should return None.
  
  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)))) == (1, (2, None, None), (3, None, None)) 
  assert dropLeafNodes(None) == None
  assert dropLeafNodes((1, None, None)) == None
  assert dropLeafNodes((1, (2, None, None), (3, (4, None, None), None))) == (1, (2, None, None), (3, 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