思维:单用列表的第一个插成立。各插入一个节点的第一个节点后插入。第一头节点点NULL,然后用插值其余节点建表头,可以实现单链逆行。

代码:
设定目标单一列表L,结点int类型

void Reverse(LinkList &L)
{
    int *p = L.head->next,*q;
    L.head->next = NULL;
    while(p!=NULL)
    {
        q = p->next;
        p->next = L.head->next;
        L.head->next = p;
        p = q; 
    }
}

该算法的时间复杂度为O(n)。空间复杂度为O(1)。