I think I might have done something right, headByRating and headByName both refer to the same address.
I have been drawing diagras working all day trying new things etc,
Why are you rolling your own linked list? Why not use std::list
?
If it's for the double-sorting thing, two separate lists of pointers would work, and be a hell of a lot easier if you can then use the provided container classes.
Or alternatively, if you need to sort it, is a linked list the best option? std::vector
is often easier for sorting, or std::set
maintains the order itself.