ListNode Union(ListNode A, ListNode B) {
Node *p,*q,*r,*s,*o;
ListNode t;
ListNode D = (ListNode)malloc(sizeof(ListNode));
D->next = NULL;
r=D;
p=A->next;
q=B->next;
t=intersection(A,B);
o=t->next;
while(p!=NULL) {
s = (ListNode)malloc(sizeof(ListNode));
s->data=p->data;
s->next=r->next;
r->next=s;
r=s;
p=p->next;
}
while(q) {
while(o) {
if(q->data==o->data) break;
o=o->next;
}
if(!o) {
s = (ListNode)malloc(sizeof(ListNode));
s->data=q->data;
s->next=r->next;
r->next=s;
r=s;
}
o=t->next;
q=q->next;
}
return D;
}
为啥出现野指针了
其他看着还行,
t=intersection(A,B);
o=t->next;
这里有可能出现野指针,你确认下
ListNode是什麽类型,是节点的指针类型吗???
那s = (ListNode)malloc(sizeof(ListNode)); 这种内存申请都是错误的,sizeof(ListNode)应该改为sizeof(Node)