链表得就地转置,就是使用头插法来转置。使得空间复杂度为O(1)。
void Reserve_L(LinkList &L)
{
LingList p,q;
p = L->next;
L->next = null;
while(p!==NULL)
{
q = p->next; //将p的后续的链表给q,q这个链表相当于用来置换前后顺序的临时存储链表。
p->next = L->next; //这一步是将p链表的后续置空。
L->next = p; // 将p链表仅剩的a1附在L的第一个位置
p = q; //再将除了a1的剩余链表重新还给p链表。
}
}
重复这个过程就将链表逆序输出