Devo fare una lista che restituisca i valori maggiori a n,il codice delle funzioni sembra funzionare,ma vorrei avere,se possibile il parere se è corretto formalmente.Appena posso,invocherò le funzioni e posto il risultato.Grazie in anticipo

#include <stdlib.h>
#include <stdio.h>
-----FUNZIONI-----
typedef struct nod
{
int data;
struct nod *next;
} node;

node *newnode(void)
{
return (node *)malloc(sizeof(node));
}
/* Dato un intero n>0, costruisce la lista di nodi da 1 ad n */
node* buildlis_n (int n)
{
node *p, *lis;
lis=NULL;
while (n>0)

{
p=newnode();
p->data=n;
p->next=lis;
lis=p;
n--;
}
return(lis);
}

/* Stampa degli elementi di una lista */
void printlis(node *lis)
{
printf("lista risultato\n");
while (lis != NULL)

{
printf(">>>> %d\n", lis->data);
lis= lis->next;
}
}

-----MAIN----
main(){





}