L'ho corretto in questo modo...dovrebbe essere giusto....spero...grazie mille....alla proxima

codice:
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#define N 150
typedef struct lista {               
			         int info;
                  struct lista *next;
                  }Ls;



Ls *crea_lista(Ls*,int);              //PROTOTIPI

void stampa(Ls*);
Ls*modifica(Ls*,Ls*);


main(){                     //MAIN

Ls*inizio1=NULL,*aux1;
Ls*inizio2=NULL,*aux2;
int somma=0;
srand(time(NULL));

do{
inizio1=crea_lista(inizio1,rand()%20);
aux1=inizio1;

inizio2=crea_lista(inizio2,rand()%20);
aux2=inizio2;

somma+=aux1->info+aux2->info;
}
while(somma<N);                   //CONTROLLO

printf("\nL1 : ");
stampa(inizio1);
printf("\nL2 : ");
stampa(inizio2);


modifica(inizio1,inizio2);

printf("\nLa lista L1 modificata :\n");
stampa(inizio1);


free(inizio1);
free(inizio2);
fflush(stdin);
getchar();
}                                //FINE MAIN
                                         //IMPLEMENTAZIONE FUNZIONI
Ls *crea_lista(Ls*inizio,int dato)      //CREA LIFO L1
{
 Ls*p;
 p=(Ls*)malloc(sizeof(Ls));
 p->info=dato;
 p->next=inizio;
 return(p);
 }

void stampa(Ls*inizio)                //STAMPA L1
{
 while(inizio)
 {
  printf(" %d ",inizio->info);
  inizio=inizio->next;
  }printf("\n");
}


 Ls*modifica(Ls*inizio1,Ls*inizio2)        //MODIFICA L1
{
 Ls *aux1=inizio1;
 Ls *aux2=inizio2;

 do{inizio2=inizio2->next;

    aux2->next=aux1->next;
    aux1->next=aux2;

    aux2=inizio2;
    aux1=aux1->next->next;
    }while(inizio2!=NULL);

 return(inizio1);       }