一个无序链表的归并,不知道哪里错了(很简单的)

其他部分肯定没有问题,问题肯定在两个函数上。
int Match(linklist &l,int e){

linklist q;
q=l->next;

while(q){
    if(q->data==e)
        return OK;
    q=q->next;
}

 return ERROR;

}

int MergeList (linklist &la,linklist &lb){

linklist p,r;
p=lb;

while(p){
    if(!Match(la,p->next->data)){
        r=p->next;
        p->next=r->next;
        r->next=la->next;
        la->next=r;
    }
    else p=p->next;
}

free(lb);
return OK;

}

编译器提示,是MergeList 的if语句执行不通过。

http://www.cnblogs.com/scud001/p/4438863.html