面试题26
2016-05-24 16:19
375 查看
反转链表:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点
#include<stdio.h> #include<assert.h> typedef struct node { int data; struct node *next; }Lnode; Lnode* InitList(int *A, int len) { assert(A&&len); Lnode *L=NULL ,*p=NULL; for (int i = 0; i < len; i++) { Lnode *tmp = (Lnode*)malloc(sizeof(Lnode)); tmp->data = A[i]; if (i == 0) L = p = tmp; else { p->next = tmp; p = p->next; } } p->next = NULL; return L; } Lnode* ReverseList(Lnode *L) { Lnode *Lpre = NULL; Lnode *LRvsHead = NULL; Lnode *p = L; while (p!= NULL) { Lnode *pnext = p->next; if (pnext == NULL) { LRvsHead=p; } p->next = Lpre; //p的下一个结点是Lpre Lpre = p; p = pnext; } return LRvsHead; } int main() { int A[] = { 1,2,3,4,5 }; int len = sizeof(A) / sizeof(A[0]); Lnode *LinkA=InitList(A, len); //构建一个链表 Lnode *RvsHead = ReverseList(LinkA); }
相关文章推荐
- 面试题5:从尾到头打印链表
- 面试题4:替换空格
- (java)美团面试之二分查找波谷值
- 面试题3:二维数组中的查找
- 跟黑马程序员一起玩转Android N
- 面试题2:实现Singleton模式
- 面试题1:赋值运算符函数
- 彻底弄懂Activity四大启动模式
- 奋斗吧,程序员——第四十三章 十步杀一人,千里不留行
- iOS 100道面试题 绝对干货
- 单链表的一些经典面试题
- 程序员美食-煎豆腐
- 编程面试的10大算法概念汇总
- 2016年Java 面试题总结
- Android 程序员需要的 ps 技巧
- 面试必备-快速排序(Java)
- 招聘一个靠谱的iOS面试题
- 面试必备-快速排序
- Android 面试题总结之Android 基础(五)
- 黑马程序员认为:iOS开发者的春天即将到来