C语言 使P循环链表接到L循环链表之后,保持P链表结构不变
算法思想
先使L链表遍历到最后一个节点,使最后一个节点的Next指向P的第一个节点,然后在遍历P链表,使P的最后一个节点Next指向L的头节点,最后把P的头节点释放掉,如图
``如果对你有帮助,点个赞呗^_^!
实现代码
结构体
typedef struct SqNode
{
int data;
struct SqNode* Next;
}SqNode,*Sqlist;
功能函数
Sqlist ConnectList(Sqlist L, Sqlist P)
{
/*
参数:两个链表的首地址
函数功能:(带头结点)使P循环链表连接到L循环链表中,仍保持循环结构
*/
Sqlist l;
Sqlist p;
l= L;
p = P;
while (l->Next != L)
l=l->Next;
l->Next = p->Next;//使L的最后一个节点指向p的第一个节点
while (p->Next != P)
p = p->Next;
p->Next = L;//使p的最后一个节点指向L的头节点
free(P);//释放P的头节点
return L;
}