02-线性结构1 两个有序链表序列的合并

02-线性结构1 两个有序链表序列的合并_第1张图片02-线性结构1 两个有序链表序列的合并_第2张图片

List Merge( List L1, List L2 ) {

    List L, rear,t1,t2;

    t1=L1->Next;
    t2=L2->Next;

    L=(PtrToNode)malloc(sizeof(struct Node));
    L->Next=NULL;
    rear=L;

    while(t1&&t2) {
        if(t1->Data < t2->Data) {
            rear->Next=t1;
            rear=t1;
            t1=t1->Next;
        } else {
            rear->Next=t2;
            rear=t2;
            t2=t2->Next;
        }
    }

    while(t1) {
        rear->Next=t1;
        rear=t1;
        t1=t1->Next;
    }
    while(t2) {
        rear->Next=t2;
        rear=t2;
        t2=t2->Next;
    }

    L1->Next=NULL;
    L2->Next=NULL;

    return L;
}

02-线性结构1 两个有序链表序列的合并_第3张图片

你可能感兴趣的:(PTA_MOOC)