以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 C/C++编程思想 』 (http://bbs.xml.org.cn/list.asp?boardid=61) ---- 学习反转单链表 (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=88047) |
-- 作者:葛靖青001 -- 发布时间:11/30/2010 8:55:00 AM -- 学习反转单链表 【转自互联网】 算法导论里的一道题目,也是很经典的题目,遍地都是,更常常以面试题面孔出现。下面给出一种思路,时间为O(N),N为节点数或者说链表长度 //前置条件:head指向链表的首节点 //后置条件:函数返回反转后指向首节点的指针,也即原链表最后一个元素。 node* Reverse(node* &head) { node *temp; node *p1,*p2,*p3; if(head==NULL) return NULL; if(head->next==NULL) return head; //至少两个节点 else { p1=head; p2=head->next; p3=p2->next; head->next=NULL; do { p2->next=p1; p1=p2; p2=p3; if(p3)//少了判断就会程序出错 { p3=p3->next; } }while(p2); head=p1; return head; } } |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
15,078.130ms |