有关c语言两个顺序链表的合并

运行报错内存不能read求大神帮忙看看哪里出错了... 运行报错内存不能read求大神帮忙看看哪里出错了 展开
 我来答
xoaxa
2017-03-20 · TA获得超过8610个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3481万
展开全部
typedef int ElementType;
typedef struct Node *PtrToNode;//定义PtrToNode为指向Node的结构体指针 
struct Node {
ElementType Data;
PtrToNode Next; 
};
typedef PtrToNode List;//定义list为指向node结构体的指针

List Merge(List L1, List L2) {
    List pa = L1,pb = L2,head;
    List head = pc = (struct Node *)malloc(sizzeof(struct Node));
    pc = (pa->Data <= pb->Data) ? pa : pb; //pc指向Data较小的节点
    while (pa && pb) {  //循环比较L1与L2两条链表的Data
        if (pa->Data < pb->Data) {
            pc->Next = pa;
            pc = pc->Next;
            pa = pa->Next;
        }
        else {
            pc->Next = pb;
            pc = pc->Next;
            pb = pb->Next;
        }
    }
    while(pa) { pc->Next = pa; pc = pc->Next; pa = pa->Next; }//将剩余的链表接到pc后面
    while(pb) { pc->Next = pb; pc = pc->Next; pb = pb->Next; }
    printf("List Merge is available!");
    return head;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式