c语言单纯的拼接两个单链表不用排序

img

有两个单链表,两个链表合成一个单链表,我的想法是将前一个链表的尾结点指向另一个链表的首节点,图片上这样不可以吗
为什么我这样输出L1后,L1还是没有变化

拼接函数这么写,供参考:

void add(not *&L1, note *&L2)
{
    note *p = L1;
    while (p->next) p = p->next;
    p->next = L2->next;
    L2->next = NULL;
    free(L2);       //释放L2头结点
    L2 = NULL;
}