实现链表倒置

一道面试题考究:实现链表的倒置。

链表倒置有很多种方法,但究其空间角度和时间角度来讲,我觉得下面一种方法是最高效的,仅此分享

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;

}

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...