一个面试题要合并两个按递增排序的链表,两个链表中重复元素只记一次,代码如下所示:
LinkList mergeList(LinkList ListA,LinkList ListB)
{
LinkList plHeadA,plHeadB,plTemp;
plTemp = ListA;
plHeadA = ListA->next;
plHeadB = ListB->next;
while(plHeadA != NULL && plHeadB != NULL)
{
if (plHeadA->data > plHeadB->data)
{
plTemp->next = plHeadB;
plHeadB = plHeadB->next;
plTemp = plTemp->next;
plTemp->next = plHeadA;
ListA->data++;
}
else if (plHeadA->data == plHeadB->data)
{
plTemp = plHeadA;
plHeadA = plHeadA->next;
plHeadB = plHeadB->next;
}
else
{
plTemp = plHeadA;
plHeadA = plHeadA->next;
}
}
if (plHeadA == NULL && plHeadB != NULL)
{
plTemp = plHeadB;
}
return plHeadA;
}