首页 > 其他 > 详细

链表归并(头插法)

时间:2021-02-28 15:29:08      阅读:17      评论:0      收藏:0      [点我收藏+]

技术分享图片


void merge(LNode *A, LNode *B, LNode *&C)      // *&C是新链表
{
    //待对比的指针 *p, *q
    LNode *p = A->next;
    LNode *q = B->next;
    LNode *s;      
    //只要其中一个头节点,然后将另外的释放
    C = A;
    C->next = NULL;
    free (B);
    while(p != NULL && q != NULL)
    {
        if(p->data <= q->data)
        {
            s = p; p = p->next;
           s->next = C->next; C->next = s;
        }
        else
        {
            //改为头插法
           s = q; q = q->next;
            s->next = C->next; C->next = s;
        }
    }
    if(p != NULL) 
    {
        s = p;
        p = p->next;
        s->next = C->next;
        C->next = s;
    }
    if(q != NULL)
    {
        s = q;
        q = q->next;
        s->next = C-next;
        C->next = s;
    }
}


链表归并(头插法)

原文:https://www.cnblogs.com/dsbz/p/14458266.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!