具体思路:
(1)定义一个指针pLa指向La的头节点,使其遍历到最后一个节点 (pLa->next!=La)
(2)定义一个指针pLb指向Lb的头节点,使其遍历到最后一个节点 (pLb->next!=Lb)
(3)La尾节点指向Lb首元节点(第一个有效数据的节点) (pLa->next = First)
(4)释放掉Lb的头节点(delete(Lb))
(5)此时pLb指向的是Lb链表的尾节点,将pLb->next指向La的头节点,那么就变成了循环单链表 (pLb->next = La)
关键性代码:
// An highlighted block
/*合并两个循环链表操作*/
LinkList Merge_List(LinkList La,LinkList Lb)
{
LinkList pLa = La;
LinkList pLb = Lb;
LinkList First = Lb->next; //First指针指向Lb的首元结点
while (pLa->next!=La)
{
pLa = pLa->next; //遍历到La的最后一个结点
}
while (pLb->next != Lb)
{
pLb = pLb->next; //遍历到Lb的最后一个结点
}
pLa->next = First;
delete Lb;
pLb->next = La;
return La;
}