List Merge(List L1, List L2)
{
List L3 = (List)malloc(sizeof(struct Node));
List p, q, r;
for (p = L1->Next, q = L2->Next, r = L3; p && q; r = r->Next)
{
if (p->Data < q->Data)
{
r->Next = p;
p = p->Next;
}
else
{
r->Next = q;
q = q->Next;
}
}
while (p)
{
r->Next = p;
p = p->Next;
r = r->Next;
}
while (q)
{
r->Next = q;
q = q->Next;
r = r->Next;
}
r->Next = NULL;
L1->Next = NULL;
L2->Next = NULL;
return L3;
}