Показать сообщение отдельно
  #2  
Старый 22.11.2010, 04:52
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну ладно, я сегодня добрый...

Как-то так:
Код:
type
  PListItem = ^TListItem;
  TListItem = record
    Val : Integer;
    Next : PListItem;
  end;

var
  MyList : PListItem;

procedure RemoveFirst0(AList : PListItem);
var
  I : PListItem;
begin
  While AList.Next <> Nil Do
    Begin
      If AList.Next.Val = 0 Then 
         Begin
            I := AList.Next;
            AList.Next := AList.Next.Next; 
            Dispose(I);
            Break;
         End;
      AList := AList.Next;
    End;
end;

procedure PrintList(AList : PListItem);
begin
  While AList <> Nil Do
    Begin
      WriteLn(AList.Val);
      AList := AList.Next;
    End;
end;
Ответить с цитированием