面试题-单链表的逆序
2015-11-30 23:33
483 查看
#include <stdlib.h> #include <stdio.h> #include <iostream> #include <time.h> #define _random(x) (random()%x) using namespace std; struct LinkNode { int data; LinkNode* next; }; LinkNode* ReverseLink(LinkNode* head) { LinkNode *prev=NULL, *next=NULL; while(head) { next = head->next; head->next = prev; prev = head; head = next; } return prev; } int main() { LinkNode* first = NULL; LinkNode* cur = NULL; srandom((int)time(0)); for(int i=0; i<10; ++i) { LinkNode* pa = new LinkNode; pa->data = _random(100); if(cur) { cur->next = pa; } else { first = pa; } cur = pa; } cur->next = NULL; cur = first; while(cur) { cout<<cur->data<<" "; cur = cur->next; } cout<<endl; LinkNode* header = ReverseLink(first); while(header) { cout<<header->data<<" "; header = header->next; } cout<<endl; return 0; }
输出结果:
这里没有采用递归的写法,感觉递归的写法, 不太好理解, 且实战性稍差.
简单的流程介绍:
原理可以参考: http://blog.csdn.net/autumn20080101/article/details/7607148
分析的很透彻.
相关文章推荐
- 黑马程序员——java集合框架的理解
- 程序员的呐喊
- 黑马程序员——详细介绍Java 泛型的理解
- iOS面试题搜集(持续更新)
- java工程师面试题
- 黑马程序员——Java基础 ---反射
- 黑马程序员--File类
- ios 面试题(1)
- 黑马程序员--集合框架(collection)
- 菜鸟好文推荐(二十三)——成为一名更好的程序员:如何阅读源代码
- 黑马程序员—Java基础—String类和Integer、Character类
- Java程序员面试宝典读后感
- 黑马程序员--模拟登录程序
- 走过电竞之路的程序员
- 走过电竞之路的程序员
- 走过电竞之路的程序员
- 黑马程序员--Scanner类和String类(day09)
- 走过电竞之路的程序员
- 黑马程序员——OC学习——内存管理
- JS面试题之被人遗忘的小小代码段