美文网首页
将两个有序链表合成一个链表

将两个有序链表合成一个链表

作者: 1墨家巨子 | 来源:发表于2019-11-25 16:59 被阅读0次

    Link1: 10,30,50,70
    Link2: 20,40,60,80
    NewLink: 10,20,30,40,50,60,70,80

    typedef struct Node{
        int data;
        struct Node *pnext;
    }Node;
    
    void NewLink(Node *NewLink,Node *Link1,Node *Link2){
        Node *ptail=NewLink;
        Node *ptemp1=Link1;
        Node *ptemp2=Link2;
        while(ptemp1!=NULL&&ptemp2!=NULL){
            if(ptemp1->data <= ptemp2->data){
                ptail->pnext=ptemp1;
                ptail=ptemp1;
                ptemp1=ptemp1->pnext;
    
                ptail->pnext=ptemp2;
                ptail=ptemp2;
                ptemp2=ptemp2->pnext;
            }
            else{
                ptail->pnext=ptemp1;
                ptail=ptemp1;
                ptemp1=ptemp1->pnext;
    
                ptail->pnext=ptemp2;
                ptail=ptemp2;
                ptemp2=ptemp2->pnext;
            }
        }
    }
    int main(void)
    {
        Node Link1;
        Node Link2;
        Node Newl;
        Link_Init(&Link1);
        Link_Init(&Link2);
        Link_Init(&Newl);
    
        Link_into(&Link1,10);
        Link_into(&Link1,30);
        Link_into(&Link1,50);
        Link_into(&Link1,70);
    
        Link_into(&Link2,20);
        Link_into(&Link2,40);
        Link_into(&Link2,60);
        Link_into(&Link2,80);
    
        NewLink(&Newl,&Link1,&Link2);
        print_Link(&Newl);
        printf("Hello World!\n");
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:将两个有序链表合成一个链表

          本文链接:https://www.haomeiwen.com/subject/opljwctx.html