Witam mam problem z napisaniem rekurencyjnej funkcji do odwracania listy. Udało mi się zrobić to iteracyjnie:

#include <stdio.h>
#include <stdlib.h>

struct el {
	int klucz;
	struct el *nast;
		};

void Odwr(lista *l)
{
	lista npocz;
	lista tmp;
	while((*l))
	{
		tmp=(*l)->nast;
		(*l)->nast=npocz;
		npocz=*l;
		*l=tmp;
	}
	 *l=npocz;
}

int main()
{
	lista _l=0;
        Odwr(&_l);
}
 

Jest jakis szybki sposób na zrobienie tego rekurencyjnie, bo nie mogłem nic znaleźć.