Code:
struct node *addNodeToFront( struct node *list, int value )
{
    struct node *newNode = malloc (sizeof(*newNode)); 
    if (newNode != NULL)
    {
        newNode -> data = value;
        newNode -> nextNode = list;
    }
    return newNode;
}

struct node *addNodeToBack( struct node *list, int value )
{
    struct node *newNode = malloc (sizeof(*newNode)); 
    if (newNode != NULL)
    {
        newNode -> data = value;
        newNode -> nextNode = NULL;
        if ( list == NULL )
        {
            list = newNode;
        }
        else
        {
            struct node *tail = head;
            while ( tail->next != NULL ) tail = tail->next;
            tail->next = newNode;
    }
    return list;
}
 
int main() 
{
    struct node *list = NULL;
    list = addNodeToFront(list,  2 );    
    list = addNodeToBack(list,  3 );
    return 0;
}