关于循环链表的合并
不知道如何贴图片,口述好了,有两个循环链表AB,现在要将循环链表B的头接在循环链表A的尾,rearA是A表的尾指针,rearB是B表的尾指针代码:
程序代码:
p = rearA->next ; /* 保存A表的头结点 */ rearA->next = rearB->next->next ; /* 将本是指向B表的第一个结点(不是头结点)赋值给rearA->next */ rearB->next = p ; /* 将远A表的头结点赋值给rearB->next */ free(p) ; /* 释放p */
///////////////////////////////////////
我不理解最后为什么要free(p),因为第一行代码这样赋值过:p = rearA->next,那这样不是相当于把A链表的头结构释放了,不是应该要释放B链表的头结构么。