input: 
  def dropLeafNodes(head):
      """This function takes a Huffman tree as input and returns a new tree with all leaf nodes removed.
  
      Example:
      Given:
            (1)
           /   \
        (2)     (3)
       /  \    /  \
     (4)  (5)(6)  (7)
      
      After calling dropLeafNodes:
            (1)
           /   \
        (2)     (3)
      """
      # 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 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