首页 > 代码库 > 【数据结构】两个单循环链表的连接操作

【数据结构】两个单循环链表的连接操作

如果在单链表或头指针表示的链表上操作这个比较消耗性能,因为都需要遍历第一个链表,找到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;//返回新循环链表的尾指针
	}