一个 while 实现 C 翻转单向链表
来源:互联网 发布:ubuntu命令行支持中文 编辑:程序博客网 时间:2024/05/29 18:01
听说这是 O(1) 空间复杂度 O(n) 时间复杂度
?有大神解释下下面这个算吗?
struct MyLink { MyLink* next; int nVal;};MyLink* genLink(MyLink* next,int nval){ MyLink* tmp = new MyLink; tmp->nVal = nval; tmp->next = next; return tmp;}MyLink* reverseLink(MyLink* begin){ MyLink* tmp = nullptr; while (begin){ auto top = begin->next; begin->next = tmp; tmp = begin; begin = top; } return tmp;}void printLink(MyLink* begin,const char* prfix){ while (begin){ printf("%s val:%d\n", prfix, begin->nVal); begin = begin->next; }}int _tmain(int argc, _TCHAR* argv[]){ MyLink*head = nullptr; for (auto i = 0; i < 5; i++){ head = genLink(head, i); } printLink(head,"orglink "); head = reverseLink(head); printLink(head,"reversed link "); while (head){ auto tmp = head->next; delete head; head = tmp; } return 0;}
0 0
- 一个 while 实现 C 翻转单向链表
- 翻转一个单向链表的c语言代码
- 翻转单向链表
- 单向链表翻转
- 单向链表翻转
- 翻转单向链表
- 翻转单向链表
- 面试系列之一:C艹翻转单向链表
- 单向链表翻转问题
- C语言实现一个简单的单向链表list
- C语言-------实现一个简单的单向链表
- 用c语言+单向链表实现一个贪吃蛇
- C++:单向链表实现
- 单向链表的创建及翻转
- 普通单向链表的翻转
- 25. Reverse Nodes in k-Group 怎样不使用额外空间翻转一个单向链表?
- C语言单向链表的实现
- C语言实现的单向链表
- List
- 点击后先缩小再放大的View
- 使用keychain保存用户名和密码等敏感信息 KeychainItemWrapper和SFHFKeychainUtils。
- Machine Learning -01 --Introduction 机器学习介绍
- Spring MVC 教程,快速入门,深入分析
- 一个 while 实现 C 翻转单向链表
- C++模板
- 标准C++中的string类的用法总结
- Java-常用方法汇总
- uvaoj111
- Android产品式开发:
- 图论 邻接矩阵
- 杭电2159-二维费用的背包问题
- AYITACM2016省赛第三周F - Cutting Sticks(切木头,区间电dp合并)