C 写了一个生猛的,如果你在意内存的话

#include "stdio.h"
#include "string.h"

typedef struct Link{
    struct Link *next;
    int *data;
    int count;
}link;

int main(void)
{
    char num[1000]={0};
    int N;
    int d=0;
    link *FRT=(link *)malloc(sizeof(link));
    link *NOW=FRT;
    link *NEXT=NULL;
    int count=0;
    while(scanf("%d",&N)!=-1)
    {
        count=0;
        NEXT=(link *)malloc(sizeof(link));
        NOW->next=NEXT;
        NOW=NEXT;
        NOW->count=N;
        NOW->next=NULL;
        NOW->data=(int *)malloc(N*sizeof(int));
        getchar();
        for(int i=0;i<N;i++)
        {
            scanf("%d\n",&d);
            num[d-1]=1;
        }
        for(int j=0;j<1000;j++)
        {
            if(num[j]!=0)
            {
                NOW->data[count++]=j+1;
                num[j]=0;
            }
        }
    }
    NOW=FRT;
    do{
        NEXT=NOW->next;
        NOW=NEXT;
        for(int i=0;i<NOW->count;i++)
        {
            if(NOW->data[i]!=0)
                printf("%d\n",NOW->data[i]);
        }
    }while(NOW->next!=NULL);
    return 0;
}