input: Write a function that takes a Huffman tree and removes all its leaf nodes.
  
  ### Input:
  (1)
        /      \
      (2)      (3)
      / \      / \
    (4) (5)  (6) (7)
  
  ### 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
  
  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((1, None, None))==None
  assert dropLeafNodes((1, (2, None, (3, None, None)), None))==(1, (2, None, None), None)
  assert dropLeafNodes(None)==None
output: def dropLeafNodes(head): 
      if head and not head.left and not head.right: 
          return None
      if not head: 
          return None
      head.left = dropLeafNodes(head.left) 
      head.right = dropLeafNodes(head.right) 
      return head