[动手写code] 链表反转
来源:互联网 发布:golang reflect.value 编辑:程序博客网 时间:2024/04/30 23:12
1. 要求
反转一个链表,private LinkNode* reverse(LinkNode* p);
2. Code
private LinkNode* reverse(LinkNode* p) { if(p == NULL) { return p; } LinkNode* prev = NULL; // 在头结点前面虚拟1个空节点 LinkNode* next = p->next; // 记录后面的节点 while(next) { // 后面还有节点 p->next = prev; //将p指向prev prev = p; // 后移 p = next; next = p->next; } p->next = prev; // 后面已经没有节点了,只要将p指向prev就可以了 return p;}
private LinkNode* reverse(LinkNode* p) { return reverse(NULL, p);}private LinkNode* reverse(LinkNode* prev, LinkNode* p) { if(p == NULL) { return p; } LinkNode* next = p->next; p->next = prev; if(next == NULL) { return p; } else { return reverse(p, next); }}
3. 说明
每次反转一个链接,记录后面的节点,反转后,向后移动。初始在最前面虚拟一个空节点,最后当后面没有节点的时候,只需要反转节点即可。
0 0
- [动手写code] 链表反转
- [动手写code] 链表基础
- 动手写Spring
- 动手写SHELL脚本
- 动手写Jquery插件
- <动手写操作系统>
- 动手写Java爬虫
- 动手写window程序
- 动手写Makefile
- 动手写一个"liveReload"
- 动手写了一个乒乓球积分排名表
- 动手写操作系统--启动过程
- 学习 自已动手写操作系统
- 动手写第一个驱动
- 【动手写排序】冒泡排序
- 【动手写排序】选择排序
- 【动手写排序】希尔排序
- 【动手写排序】快速排序
- vim 去掉^M
- ecshop生成纯静态页
- 高级 Linux 命令精通指南,第 3 部分:资源管理
- iOS7应用国际化
- ecshop有些配送方式不支持货到付款解决方案
- [动手写code] 链表反转
- JAVA多线程和并发基础面试问答
- c#中ref和out 关键字
- ecshop修改后台地址入口
- HTTP详解-工作原理
- PHP syntax error, unexpected $end 错误的一种原因及解决
- 关于cocos2d-x 中 CCEditBox 的输入位置和IOS虚拟键盘位置不重合的bug
- linux内核的原子操作
- 设置控件随窗口大小而改变