code: public V remove(Object key) {
  	checkKey(key);
  	
  	String cs = (String)key;
  	Node<V> n = lookup(cs);
  	if (n != null && n.isTerminal()) {
  	    V old = n.value;
  	    n.value = null;
  	    size--;
  	    return old;	    
  	}
  	else {
  	    return (n == null) ? null : n.value;
  	}
      }
docs: Removes the mapping for a key from this map if it is present and returns
  the value to which this map previously associated the key, or {@code
  null} if the map contained no mapping for the key.
  
  @param key key whose mapping is to be removed from the map
  
  @return the previous value associated with key, or {@code null} if there
  was no mapping for key.