两个单循环链表的连接
小甲鱼视屏线性表14
将链表A的尾指针指向链表B的第一个节点(不是头结点哦),再将链表B的尾节点指向链表A的头结点,最后释放B的头结点,因为一个链表只需要一个头结点就好了。
typedef struct node{
/**结构体定义了一个节点data就是节点数据域,*next就是节点的指针域。
用一个结构,整出链表要用到的每一个节点*/
int data;//数据
struct node *next;//指向下一个位置的指针
}node;
//本算法由“尾指针表示法”独家赞助。(A、B都是表示当前链表的尾指针)
LinkList Connect(Linklist A,LinkList B){//这里的A和B,都是非空的单循环链表
LinkList p = A->next; //A->next表示A表的头指针,暂且交给p保管,因为A->next一会会被覆盖
A->next = B->next->next; //B是尾指针,B->next是B的头结点,B->next->next就是B的第一个节点,然后A的尾节点指向B的第一个节点
free(b->next); //此时,B的头结点就不需要了,所以释放
return B; //返回的是合并之后的表尾节点地址。
}
版权声明:本文为qq_37012770原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。