请问大佬们我的代码错在哪了

#include<stdio.h>
#include<stdlib.h>
typedef struct a{
    int num1;
    struct a *next1;
}A;
typedef struct b{
    int num2;
    struct b *next2;
}B;
int main()
{
    int num,count=1,count2=0,num0;
        A *head1=NULL;
        A *last1=NULL;
        A *current1=NULL;
        scanf("%d",&num);
    while(num!=-1){
          A *current1=(A*)malloc(sizeof(A));
            current1->num1=num;
            current1->next1=NULL;
            if(head1==NULL){
                head1=current1;
                last1=current1;
            }
            else{
                last1->next1=current1;
                last1=current1;
            }
            scanf("%d",&num);
                        }
        B *head2=NULL;
        B *last2=NULL;
        B *current2=NULL;
        scanf("-1");
        scanf("%d",&num);
        while(num!=-1){
            B *current2=(B*)malloc(sizeof(B));
            current2->num2=num;
            current2->next2=NULL;
            if(head2==NULL){
                head2=current2;
                last2=current2;
            }
            else{
                last2->next2=current2;
                last2=current2;
            }
            scanf("%d",&num);
            count++;
                      }
        for(current1=head1,current2=head2;current1<=last1;current1=current1->next1){
            if(current1->num1==current2->num2){
                for(;current1->num1==current2->num2&&current1!=NULL&&current2!=NULL;current1=current1->next1,current2=current2->next2){
                    count2++;
                }
                if(current2!=NULL)
                count2=0;
            }
        }
        A *w=head1;
        while(w){
        free(w);
        w=w->next1;}
        B *u=head2;
        while(u){
        free(u);
        u=u->next2;}
        free(current1);
        free(current2);
         if(count2==count)
         printf("ListB is the sub sequence of ListA.");
         else
         printf("ListB is not the sub sequence of ListA.");
}

请问你的输入是什么?  你期待什么输出?