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