Ciao , le quattro liste sono tutte uguali , quindi ti crei una funzione per inserire dati nella lista , che userei per tutte e 4 le liste .

Le condizioni necessarie le sai , quindi bastano un if else









codice:
void dividi(TND lInt,TND lPositivi, TND lNegativi)
{

  TND *temp=lInt;
  
  while(temp!=NULL)
{
     if(temp->val >=0)
          funzione_inserimento(lpositivi, val);
     else
          funzione_inserimento(lNegativi,val);


   temp=temp->next;

}


}
MA TI CONSIGLIO di aspettare persone più esperte , sinceramente non vedo il problema per il punto c