private void reverse() {
        Element tmpf = firstElement;
        Element tmps = firstElement.getNextElement();
        Element tmpt = firstElement.getNextElement().getNextElement();
        tmpf.setNextElement(null);
        while (tmpt.getNextElement() != null) {
            tmps.setNextElement(tmpf);
            tmpf = tmps;
            tmps = tmpt;
            tmpt = tmpt.getNextElement();
        }
        tmps.setNextElement(tmpf);
        tmpt.setNextElement(tmps);
        firstElement = tmpt;
        if (reversed) {
            reversed = false;
        } else {
            reversed = true;
        }
    }