两个单循环链表的连接

版权声明:欢迎朋友们的观摩,标注原创的文章,如应用,请标明出处,谢谢。 https://blog.csdn.net/qq_37012770/article/details/78081675

两个单循环链表的连接
小甲鱼视屏线性表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;                       //返回的是合并之后的表尾节点地址。 
}

猜你喜欢

转载自blog.csdn.net/qq_37012770/article/details/78081675