要求:
已知指针ha和hb分别指向两个单链表的头结点,并且已知两个链表的长度分别为m和n。试写一算法将这两个链表连接在一起。假设指针hc指向连接后的链表的头结点,并要求算法以尽可能短的时间完成连接运算。
C语言实现:
void MergeList_L(LinkList &ha,LinkList &hb,LinkList &hc)
{
LinkList pa,pb;
pa=ha;
pb=hb;
while(pa->next&&pb->next){
pa=pa->next;
pb=pb->next;
}
if(!pa->next){
hc=hb;
while(pb->next)
pb=pb->next;
pb->next=ha->next;
}
else{
hc=ha;
while(pa->next)
pa=pa->next;
pa->next=hb->next;
}
}