Нет, не правильно. А разве компилятор не матерился на каждой строке?
1. Метод
retrieve() возвращает
void, а вы его в условный оператор.
2. Второе выражение в операторе цикла — при непустом списке гарантирован бесконечный цикл.
3. Начальное значение
i=0 не имеет смысла, т.к. элементы списка нумеруются от единицы (см. определение класса).
3.
retrieve() и
getLength() — это не функции, а методы объекта класса
List. Какого объекта, где его определение/имя?
4. Где определение переменной
dataItem?
5. Оператор возврата пишется по другому —
return.
И вообще, зачем нужна ваша функция, есть уже готовый метод
getLength() для получения размера списка.