private LinkedElement<E> findElement(int index) {
		if (indexOK(index)) {

			LinkedElement<E> elem = first;
			int counter = 0;

			// Choose a way to find
			boolean wayAhead = (total / 2 > index);

			if (wayAhead) { // way forward
				while (counter < index) {
					elem = elem.getNext();
					counter++;
				}
			} else { // way backwards
				counter = total - 1;
				elem = last;
				while (counter > index) {
					elem = elem.getPrev();
					counter--;
				}
			}
			return elem;
		}
		return null;
	}