链式有序表的合并

创建L3,以次遍历L1,L2,比较其中元素的大小,将他们此存放在L3中。

List Merge( List L1, List L2 ){
    List L3=(List)malloc(sizeof(struct Node));
    L3->Next=NULL;
    List p1=L1->Next;
    List p2=L2->Next;
    List p3=L3;
    while(p1!=NULL&&p2!=NULL){
        if(p1->Data<p2->Data){
            p3->Next=p1;
            p1=p1->Next;
        }
        else{
            p3->Next=p2;
            p2=p2->Next;
        }
        p3=p3->Next;
    }
    p3->Next=NULL;   
//将非空链表剩余段插入p3所指节点之后
    if(p1!=NULL){
        p3->Next=p1;
    }
    if(p2!=NULL){
        p3->Next=p2;
    }
    L1->Next=NULL;
    L2->Next=NULL;
    return L3;
posted @ 2024-09-29 10:41  呓语-MSHK  阅读(27)  评论(0)    收藏  举报