Не совсем понятно, что вы хотите сделать, но перебор односвязного списка выглядит так:
Код:
while (blist <> nil) do begin
//
// Здесь чего-то делаем, НО НЕ МЕНЯЕМ ЗНАЧЕНИЕ blist
//
blist := blist^.next; // А вот это как раз переход к следующему элементу
end;
Напишите задачу полностью, я постараюсь помочь.