这个代码为什么运行结果显示不了

麻烦帮我看看我这个代码为什么运行结果显示不了。题目是已知两个单链表,元素递增排序,求交集。
#include<stdio.h>
#include<stdlib.h>
struct node
{
int data;
struct node *next;
};
typedef struct node LNode, *LinkList;
void BUILDLIST(LinkList l)
{
char c;
int a=0,b;
scanf("%d",&b);
LinkList p=l,q=(LinkList)malloc(sizeof(LNode));
LinkList h=(LinkList)malloc(sizeof(LNode));
h->data=b;
p->next=h;
p=h;
while((c=getchar())!='\n')
{scanf("%d",&a);
q->data=a;
q->next=NULL;
p->next=q;
p=q;
}
p->next=NULL;
}
LinkList qbjlist(LinkList l1, LinkList l2)
{
if(l1->next==NULL||l2->next==NULL) return;
int x;
LinkList p1=l1->next;
LinkList p2=l2->next;
while(p1&&p2)
{if(p1->data>p2->data) p2=p2->next;
else if(p1->datadata) p1=p1->next;
else
{printf("%d",p1->data);
p1=p1->next;
p2=p2->next;
}
}
}
int main()
{
LinkList l1=(LinkList)malloc(sizeof(LNode));
LinkList l2=(LinkList)malloc(sizeof(LNode));
l1->next=NULL;
l2->next=NULL;
BUILDLIST(l1);
BUILDLIST(l2);
qbjlist(l1,l2);
printf("\n");
return 0;
}

你这里写错了吧

img


给你改好了:

img

#include<stdio.h>
#include<stdlib.h>
struct node
{
    int data;
    struct node *next;
};
typedef struct node LNode, *LinkList;
void BUILDLIST(LinkList &l)
{
    l = new node;
    l->next = NULL;
    node *r;
    r = l;
    int n;
    scanf("%d",&n);
    for (int i = 0; i < n; i++)
    {
        printf("请输入链表第%d个元素的值:", i + 1);
        node *s;
        s = new LNode;
        scanf("%d", &s->data);
        s->next = NULL;
        r->next = s;
        r = s;
    }

}
LinkList qbjlist(LinkList l1, LinkList l2)
{
    if(l1->next==NULL||l2->next==NULL)
        return 0;
    int x;
    LinkList p1=l1->next;
    LinkList p2=l2->next;
    while(p1&&p2)
    {
        if(p1->data>p2->data)
            p2=p2->next;
        else if(p1->data>p2->data)
            p1=p1->next;
        else
        {
            printf("%d",p1->data);
            p1=p1->next;
            p2=p2->next;
        }
    }
}
int main()
{
    LinkList l1=(LinkList)malloc(sizeof(LNode));
    LinkList l2=(LinkList)malloc(sizeof(LNode));
    l1->next=NULL;
    l2->next=NULL;
    BUILDLIST(l1);
    BUILDLIST(l2);
    qbjlist(l1,l2);
    printf("\n");
    return 0;
}


您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632