liste chainées C : i dunno how to formulate a question when i dunno what's the problem at all, since i'm still new at the linked list stuff in C, anyhow this is my code

    #include <stdio.h>
    #include <stdlib.h>
    
    typedef struct Element{
    	int val;
    	struct Element* suivant;
    }Element;
    
    Element* initialiserListe(Element* L){
    	L = NULL;
    	return L;
    }
    
    Element* nouveau;
    Element* insererEnTete(Element* L){
    	nouveau = (Element*)malloc(sizeof(Element));
    	if(L == NULL) printf("initialisation : ");
    	printf("donner une valeur : ");
    	scanf("%d", &nouveau->val);
    	nouveau->suivant = L;
    	return nouveau;
    }
    
    int listeVide(Element* L){
    	return L == NULL;
    }
    
    void affichageListe(Element* L){
    	if(listeVide(L)) printf("liste vide");
    	else{
    		Element* temp = L;
    		while(temp != NULL){
    			printf("%d", temp->val);
    			temp = temp->suivant;
    		}
    	}
    }
    
    int main()
    {
        printf("Hello world!\n");
        Element *L = NULL;
        initialiserListe(L);
        insererEnTete(L);
        affichageListe(L);
        return 0;
    }


all i wanna know is why does it print "liste vide" when it should print the vals from the list