Inserir dados em uma lista em ordem crescente,Linguagem C

Boa tade galera,estou com dificuldades para fazer com que os dados sao inseridos em ordem crescente numa lista encadeada,ja fiz a funçao de insersao,qual logica posso fazer para que o programa ja implemente na lista em ordem crescente,

estrutura da minha lista abaixo:

struct dados{ //definindo a estrutura da lista

int conteudo;
struct dados* prox;

};

typedef struct dados Dados;

//funçao de insersao de dados

Dados* insere(Dados *l,int i){ //funçao para inserir valor na lista

	Dados* novo = (Dados *) malloc(sizeof(Dados));
		novo -> conteudo = i;
		novo -> prox = l;

				return novo;	

}