K
so ganz genau hab ich dein programm noch nicht durchanalysiert aber ein fehler ist mir bereits aufgefallen. wenn du beim mischen einfügst, läßt du psave->next auf sortl zeigen, du vergißt aber, daß du auch das next-feld des vorgängers von sortl auf psave->next zeigen lassen mußt! dh du mußt das element zwischen sortl und seinem vorgänger einfügen.
das problem dabei ist, daß du keinen zeiger auf den vorgänger von sortl hast. am besten, du mischt die linke liste in die rechte un nicht umgekehrt. da hast du mit psave den zeiger auf den vorgänger. dann hast du zwar keinen vorgänger auf die einzumischende liste, den brauchst du aber auch nicht, weil du die ja sowieso zerlegst.
außerdem finde ich es ziemlich haarig, daß du die listen nicht mit null-zeigern am ende trennst, bevor du sie sortierst und mischt. du mußt schließlich bedenken, daß du ja nur teile einer liste sortierst, die irgendwo innerhalb einer größeren liste liegen. ich weiß zwar nicht genau, ob das in deinem fall wirklich ein problem ist, aber ein ungutes gefühl hätte ich schon dabei.