boolean containsKey(final long key) {
        if (size == 0)
            return false;
        if (key < this.key)
            return left.containsKey(key - this.key);
        if (key > this.key)
            return right.containsKey(key - this.key);
        // otherwise key==this.key:
        return true;
    }