一道面试题考究:实现链表的倒置。
链表倒置有很多种方法,但究其空间角度和时间角度来讲,我觉得下面一种方法是最高效的,仅此分享:
int Reverse_Linklist(LinkNode *L)
{
/**第一步:将头节点变成尾节点,即,断头**/
LinkNode *p,*q,*current;
p = head->next;
q= p->next;
p->next = NULL;
/**第二步:头删、头插法并用,将后面的节点依次插入**/
while(q)
{
current = q->next;
q->next = p;
L = q;
p= q;
q = current;
}
return 0;
}