code: private RedBlackTreeNode<Key, Value> floor(RedBlackTreeNode<Key, Value> x, Key key) {
  	if (x == null) {
  	    return null;
  	}
  	int cmp = key.compareTo(x.getKey());
  	if (cmp == 0) {
  	    return x;
  	}
  	if (cmp < 0) {
  	    return floor(x.getLeft(), key);
  	}
  	RedBlackTreeNode<Key, Value> t = floor(x.getRight(), key);
  	if (t != null) {
  	    return t;
  	} else {
  	    return x;
  	}
      }
docs: given key