为什么这里奇偶链表无法打印?

是一个链表按照数字的奇偶分为两个链表
这是代码:

//将单链表L中的奇数项和偶数项结点分解开(元素值为奇数、偶数),分别放入新的单链表中,然后原表和新表元素同时输出到屏幕上,以便对照求解结果
void listSeparate(node** L)
{
    node* p;
    node* L1, * L2, * M, * N, * u, * t;
    p = (*L)->next;
    L1 = (node*)malloc(sizeof(node));
    L2 = (node*)malloc(sizeof(node));
    M = L1;
    N = L2;
    initialList(&L1);
    initialList(&L2);
    while (p != NULL)
    {
        if (p->data % 2 == 0)
        {
            u = (node*)malloc(sizeof(node));
            u->data = p->data;
            u->next = M->next;
            M->next = u;
            M = u;
        }
        else
        {
            t = (node*)malloc(sizeof(node));
            t->data = p->data;
            t->next = L2->next;
            L2->next = t;
            L2 = t;
        }
        p = p->next;
    }
    print(L);
    cout << "偶数项L1为:" << endl;
    print(&L1);
    cout<<"奇数项L2为:"<

这是出现的问题

img

27到29行,L2改成N啊,L2都在循环中移动到链表尾了,能输出啥啊