Se volessi costruire una lista composta dai numeri da (1... N) , come dovrebbe essere l'algoritmo ricorsivo?

Io ho pensato una cosa di questo tipo:

codice:
function costrList_ric(head, N, i)
       var new_node:  lista
       
       if(i<N)
                new_node.info:=i
                new_node.link:=NULL
                head:=new_node
                costrList_ric(head.link, N, i+1)
                costrList_ric:=head
        endif
end
La function è scritta in P-LILE(Pascal Like), magari qualcuno può confermarmi se è corretta come logica oppure qualcuno potrebbe scrivere un'altra versione etc...

Grazie anticipatamente