I'm trying to implement a selection sort algorithm on linked lists, and the trouble I've ran into is swapping any two nodes in the linked list.

My selection sort function:

Code:

void selSortLL(NodeT *head) {
NodeT *cur = NULL;
NodeT *move = NULL;
NodeT *min = NULL;
if (head == NULL || head->next == NULL) {
return head;
}
for (cur = head; cur->next != NULL; cur=cur->next) {
min = cur;
for (move = cur->next; move != NULL; move=move->next) {
if (move->value < min->value) {
min = move;
}
}
if (min != cur) {
//SWAP CUR W/ MIN NODES
}
}
return head;
}

I'm sure I'd need at least one temporary node, but even then I'm still unsure about how I'm going to tackle this problem.