Изобразим удаление графически:
Напишем фрагмент программы:
x:= Head; {Запомним адрес первого элемента списка}
Head:= Head^.Next; {Теперь Head указывает на второй элемент списка}
Dispose(x); {Освободим память, занятую переменной x^}
Удаление элемента из середины списка
Для этого нужно знать адреса удаляемого элемента и элемента, находящегося в списке перед ним.
Изобразим удаление графически:
x:= Head; {Переменная х для хранения адреса удаляемого элемента}
{Найдем адреса нужных элементов списка}
while (x<>Nil) and (x^.Data<>Digit) do
Begin
dx:= x;
x:= x^.Next
End;
dx^.Next:= x^.Next;
Dispose(x);