思维:单用列表的第一个插成立。各插入一个节点的第一个节点后插入。第一头节点点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)。