Riesco ad inserire i valori, poi alla fine non li stampa di seguito; uso dev C++
il problema penso sia nella funzione inserisciTesta...
perchè se elimino quella funzione e aggiungo nella funzione costruisciLista:
N->next=L;
L=N;
mi funziona.


codice:
#include <stdio.h>
#include<stdlib.h>

typedef struct nodo *lista;
typedef struct nodo{
        int val;
        lista next;
        } nodo;
        

lista costruisciLista (void);
lista inserisciTesta(lista L, nodo *N);
void stampaLista (lista L);

int main (void)
{
    lista lis;
    nodo *n;
    lis=costruisciLista();
    lis=inserisciTesta(lis,n);
    stampaLista(lis);
    system("PAUSE");
    return 0;
}   
    


lista costruisciLista(void)
{
      lista N,L=NULL;
      int val;
      printf("inserisci il primo valore: ");
      scanf("%d", &val);
      
      while (val)
      {
            N=(nodo*)malloc(sizeof (nodo));
            N->val=val;
            L=inserisciTesta(L,N);
            
            printf("\nInserisci prossimo valore <0 per terminare>: ");
            scanf("%d", &val);
      }
return L;
}      


lista inserisciTesta(lista L, nodo *N)
{
      N->next = L;
      L=N;
      return L;
}


void stampaLista(lista L)
{
     while (L!=NULL)
     {
           printf("%d\n", L->val);
           L=L->next;
     }
}