有序表合并后的打印问题

#include<stdio.h>
#include<stdlib.h>

typedef struct LinkList{
    int data;
    struct LinkList *next;
}LNode,*LinkList;

LinkList InitList(){
    LinkList L = (LinkList)malloc(sizeof(LNode));
    L->next = NULL;

    return L;
}

LinkList CreateList(LinkList L,int data[],int n){
    LinkList r;
    L = (LinkList)malloc(sizeof(LNode));
    r = L;

    LinkList s;
    int i;
    for(i = 0;i < n;i++){
        s = (LinkList)malloc(sizeof(LNode));
        s->data = data[i];
        r->next = s;
        r = s;
    }
    r->next = NULL;
    return L;
}

void DisplayList(LinkList L){
    LinkList p = L->next;
    while(p != NULL){
        printf("%d ",p->data);
        p = p->next;
    }
    printf("\n");
}

void MergeList(LinkList La,LinkList Lb,LinkList Lc){
    LinkList pa = La->next;
    LinkList pb = Lb->next;
    LinkList pc = Lc = La;

    while(pa && pb){
        if(pa->data <= pb->data){
            pc->next = pa;
            pc = pa;
            pa = pa->next;
        }else{
            pc->next = pb;
            pc = pb;
            pb = pb->next;
        }
    }
    pc->next = pa ? pa : pb;
    free(Lb);
}

int main(){
    int ArrayA[] = {1,7,8};
    int ArrayB[] = {2,4,6,8,10,11};
    
    LinkList La = CreateList(La,ArrayA,3);
    LinkList Lb = CreateList(Lb,ArrayB,6);
    LinkList Lc = InitList();

    DisplayList(La);
    DisplayList(Lb);

    MergeList(La,Lb,Lc);

    DisplayList(Lc);
}

如下图,73行执行了合并操作,为什么75行的打印依旧为空!

img

LinkList pc = Lc;// = La;

img

第45行,修改为:LinkList pc = Lc; //LinkList pc = Lc = La;