Wieviele Elemente sind es denn?
Mit einer Variante des BubbleSort könnte man das innerhalb der TList sortieren.
so grob auf die Art
Delphi-Quellcode:
SearchId = 0;
for i := Low to High-1 do
for j := i to High do
if Element[j].PrevID = SearchId then
begin
SearchID = Element[j].ID;
Swap(i,j);
Break;
end;