Jeśli mam:

struct element
{
        int dana;
        struct element *next;
};

int main()
{
struct element *lista = NULL;
//tworze liste zawierajaca jakies elementy
lista=sortujListe(lista);
.......................................
}

To sortowanie bąbelkowe przez zamianę wskaźników mam:

struct element * sortujListe(struct element *head)
{
     
     struct element *jeden;
    struct element *dwa;
    struct element *pom;

  for(jeden=head; jeden!=NULL; jeden=(*jeden).next)
  {
  
    for(dwa=(*jeden).next; dwa!=NULL; dwa=(*dwa).next)
    {
      if((*jeden).dana>(*dwa).dana) 
      {
                pom=jeden;
                (*jeden).next=(*dwa).next;
                (*dwa).next=pom;
      } 
    }
    
  }
  
  
  return head;   
     
     
}

To sortowanie jest oczywiście złe, wiem co jest źle, ale nie wiem jak to poprawić, nie wiem jak zrobic by glowa listy wskazywala na wlasciwy element :(