54

问答题 54 /69

编程实现对一个进行链表逆序操作。

参考答案

node *reverse(node *head)
{
    node *p1, *p2, *p3;
    if (head == NULL || head->next)
        return head;
    p1 = head, p2 = p1->next;
    while (p2)
    {
        p3 = p2->next;
        p2->next = p1;
        p1 = p2;
        p2 = p3;
    }
    head->next = NULL;
    head = p1;
    return head;
}