如果在单链表或头指针表示的链表上操作这个比较消耗性能,因为都需要遍历第一个链表,找到an,然后将b1链接到an的后面,时间复杂度是:O(n)。若在尾指针表示的单循环链表上实现,则只需改变指针,无需遍历,时间复杂度是:O(1)
现在看算法实现,需要4个主要步骤,都注释了:
LinkList Connect(LinkList A,LinkList B){ //假设A,B为非空循环链表的尾指针 LinkList p = A->next;//1、保存A链表的头结点的位置 A->next = B->next->next;//2、将A表的表尾链接到B表达开始节点处 free(B->next);//3、释放B表达头结点 B->next= P;//4、将B表达表尾的next链接到A的头 return B;//返回新循环链表的尾指针 }