假设有两个按元素值递增次序排列的线性表,均以单链表形式存储。请编写算法将这两个单链表归并为一个按元素值递增次序排列的单链表,并要求利用原来两个单链表的结点存放归并后的单链表。
程序员文章站
2022-05-06 11:38:12
...
代码:
void mergeList(LinkList* L1,LinkList* L2){
//将L2插入到L1中
LinkList* p = L1->next;;
LinkList* p2 = L2->next;;
L1->next = NULL;
//头插法
while(p!=NULL && p2!=NULL){
if(p->data>p2->data){
//p2头插
LinkList* p2_next = p2->next;//防短链
p2->next = L1->next;
L1->next = p2;
p2 = p2_next;
}else
{
//p头插
LinkList* p_next = p->next;
p->next = L1->next;
L1->next = p;
p = p_next;
}
}
while(p2!=NULL){
LinkList* p2_next = p2->next;//防短链
p2->next = L1->next;
L1->next = p2;
p2 = p2_next;
}
while(p!=NULL){
LinkList* p_next = p->next;
p->next = L1->next;
L1->next = p;
p = p_next;
}
}
结果:
下一篇: js计算357整除的数