Salve ragazzi,

stò cercando di capire come inserire un elemento in una lista ordinata, IN MODO RICORSIVO.
Per esempio, supponiamo che la lista è la seguente:

codice:
[3][-]--->[4][-]--->[7][-]---> NULL
Adesso, vorrei inserire l'elemento 5, che dovebbe essere inserito trà 4 e 7, quindi otterrei una struttura di questo tipo:

codice:
[3][-]--->[4][-]--->[5][-]--->[7][-]---> NULL
Io ho iniziato a mettere giù un pò di codice:

codice:
#include<iostream>


using namespace std;


typedef struct nodo {
  int value;
  struct nodo *link;
};


nodo inserimento(nodo *head, int elemento);


int main()
{
nodo *head=NULL;

inserimento(head, elemento);
}


nodo inserimento(nodo *head, int elemento){
 
  if(head==NULL){
    (*head)->value=elemento;
    (*head)->link=NULL;
  }
  ......

}
Adesso, non riesco a capire come continuare il tutto.
Qualcuno potrebbe aiutarmi a completare il programma?

Grazie anticipatamente,
gaten