Note that we assume the memory for the new node has already been allocated and a pointer to that memory is being passed to this function.
// Special case code for the head end
void linkedListInsertSorted(struct node** headReference, struct node* newNode)
{
// Special case for the head end
if (*headReference == NULL || (*headReference)->data >= newNode->data)
{
newNode->next = *headReference;
*headReference = newNode;
}
else
{
// Locate the node before which the insertion is to happen!
struct node* current = *headReference;
while (current->next!=NULL && current->next->data <>data)
{
current = current->next;
}
newNode->next = current->next;
current->next = newNode;
}
}



Working on machines without understanding them ? Then you should be here..
Geographical location should not become a barrier to Share our knowledge.
Puzzles and Interview question are intended to be discussed here.