Ciao a tutti, il problema chiede di inserire 10 caratteri da tastiera e di stampare la lista in senso inverso. Il codice è pressochè finito, ma al momento della stampa mi visualizza degli antipatici spazi che nessuno ha mai introdotto, vi posto il codice e l'esempio, se qualcuno può aiutarmi a individuare l'errore ve ne sarei grato.
#include <stdio.h>
#include <stdlib.h>
//definisco la struttura
struct charList{
    char value;
    struct charList *next;
};
//sinonimo di intList
typedef struct charList CharList;
typedef CharList *chList;
//prototipi di funzione
void insert (chList sPtr, char car);
void printList (chList l);
void printInverseList (chList l);
int main(int argc, char **argv){
    int i = 0;
    char value;
    chList l1;
    l1 = malloc(sizeof(struct charList));
    printf("*** FILL THE LIST WITH 10 CHAR ***\n\n");
//ciclo che mi fa inserire 10 caratteri da tastiera
    for(i = 0; i < 10; i++){
        printf("Enter a char: ");
        scanf("\n%c", &value);
        insert(l1, value);
    }
    printList(l1);
    printf("\n*** THE REVERSE LIST ***\n\n");
    printInverseList(l1);
	return 0;
}
//inserisce elementi nella lista
void insert(CharList *sPtr, char car){
    chList newPtr, currPtr, prevPtr;
    newPtr = malloc(sizeof(struct charList));
    if(newPtr != NULL){
        newPtr -> value = car;
        newPtr -> next = NULL;
        prevPtr = NULL;
        currPtr = sPtr;
        while(currPtr != NULL){
            prevPtr = currPtr;
            currPtr = currPtr -> next;
        }
        if(prevPtr == NULL){
            newPtr -> next = sPtr;
            sPtr = newPtr;
        }
        else{
            prevPtr -> next = newPtr;
            newPtr -> next = currPtr;
        }
    }
    else{
        printf("Not inserted. Memory not avalaible\n\n");
    }
}
//stampa la lista
void printList(chList l){
    if(l == NULL){
        printf("List is empty.\n");
    }
    else{
        while(l != NULL){
            printf(" %c -->", l -> value);
            l = l -> next;
        }
        printf("NULL\n\n");
    }
}
//ordina in senso inverso
void printInverseList (chList l){
    if(l == NULL){
        return;
    }
    else{
        printInverseList(l->next);
        printf(" --> %c ", l-> value);
    }
}
Immettendo i caratteri A, B, C, D, E, F, G, H, I, J visualizzo normalmente:
(spazio) --> A --> B --> C --> D --> E --> F --> G --> H --> I --> J --> NULL, ed è esattamente quello che vorrei, se non ci fosse quel fastidioso spazio.
Mentre per quanto riguarda la stampa inversa della lista visualizzo: 
J --> I --> H --> G --> F --> E --> D --> C --> B --> A --> (spazio), nel secondo caso vorrei che al posto dello spazio stampasse un NULL, per far vedere che è finito il percorso inverso nella lista. 
Spero di essere stato più chiaro possibile, grazie dell'aiuto.