c语言,这个不能运行是什么情况

img


设计一个算法:在带头结点的非空循环单链表 L 中第一个最大值结点之前插入一个值为x的结
点。


void insert_before_first_max(Node*& L, int x)
{
    if (L == nullptr) return L = new Node(x), L->next = L, void();

    Node* max_node = L;
    for (Node* p = L->next; p != L; max_node = p->data > max_node->data ? p : max_node, p = p->next);

    if (x > max_node->data) max_node->next = new Node(x), max_node->next->next = max_node->next;
}