思路:使用頭插法建立單鏈表,每插入一個節點都插在頭結點之後,先使頭結點指向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)。