input: def dropLeafNodes(head):
      """Takes a Huffman tree and drops all its leaf nodes.
      >>> class Node:
      ...     def __init__(self, val, left=None, right=None):
      ...         self.val = val
      ...         self.left = left
      ...         self.right = right
      ...
      >>> root = Node(1, Node(2, Node(4), Node(5)), Node(3, Node(6), Node(7)))
      >>> modified_root = dropLeafNodes(root)
      >>> print(modified_root.val if modified_root else None)
      1
      """
      # 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 the current node is a leaf node after modifications, drop it
      if head and not head.left and not head.right:
          return None