可以帮我看一下我这个链表有什么问题吗,

可以帮我看一下我这个链表有什么问题吗,万分感谢
#include
using namespace std;
typedef int Elemtype;

struct link {
Elemtype data;
link *next;
};
typedef link *linklist;

void input(Elemtype *ep) {
cin >> *ep;
}

void visit(Elemtype *ep) {
cout << *ep << " ";
}

void createlink1(linklist *L, int n, void (*input)(Elemtype *)) {
linklist s, p = *L;

*L = new link;

for (n; n > 0; n--) {
    s = new link;
    input(&s->data);
    p->next = s;
    p = s;
}

p->next = NULL;

}

void createlink2(linklist *L, int n, void (*input)(Elemtype *)) {
linklist s;
*L = new link;

(*L)->next = NULL;

for (n; n > 0; n--) {
    s = new link;
    input(&(s->data));
    s->next = ((*L)->next);
    (*L)->next = s;

}

s->next = NULL;

}

void readlink(linklist L, void(*visit)(Elemtype *)) {
linklist s ;
s = L->next;

while (s != NULL) {
    visit(&(s->data));
    s = s->next;
}

}

void closelink(linklist *L) {
linklist q, p = *L;

while (p != NULL) {
    q = p->next;
    delete p;
    p = q;
}

*L = NULL;

}

int main () {
int n;
cin >> n;
linklist L;
createlink2(&L, n, input);
readlink(L, visit);
closelink(&L);

}