建议画一下结点图,这里Ta和Tb应该指的是不同循环链表的尾指针。
函数的功能是删掉了Tb的头结点,连接了两个循环单链表,所以Tb->next指向的Tb头结点才要被释放掉,没有指针指向的空间是需要被释放掉的。不再需要的内存未被释放,从而导致空间被浪费,被称为内存泄露。
而Ta->next原本指向的是Ta的头结点,而Ta的头结点被Tb->next指向了,并不属于没有指针指向的空间,所以不需要释放。
因为Tb->next 是Tb链表的头结点 本身是有一块内存的 如果直接Tb->next = p; 那么Tb->next原来的内存会未释放 而指针又指向了新p节点的内存地址,那么原来的那块内存就泄露了,因为已经没有指针指向那块内存了,无法释放就形成内存泄露了
00