【leetcode】Rotate List
2015-07-31 16:35
316 查看
class Solution { public: ListNode* rotateRight(ListNode* head, int k) { if(head == NULL) return head; ListNode *p = head; int len = 0; while(p->next){ p = p->next; len++; } len++; p->next = head; //link head and tail k %= len; int temp = len - k; while(temp > 0){ p = p->next; temp--; } head = p->next; p->next = NULL; return head; } };
以上是AC代码
本题主要的技巧就是将链表首尾相连形成环
首先将k取余
标记出来倒数k+1位置的节点
最后将该节点的指向定义为新的头结点
再讲该指向NULL 来断开环链表
相关文章推荐
- uva1386(矩阵快速幂)
- 一个正则表达式验证密码强度
- Spring依赖注入——java项目中使用spring注解方式进行注入
- HDU 4751 — Divide Groups 交叉染色判二分图
- Magnum的使用
- iOS学习之KVO、KVC
- 【Android应用开发技术:媒体开发】MediaPlayer基本原理
- C++的三种继承方式
- 赛门铁克ssl证书 仲裁证书
- php变量的引用计数器和写时复制
- FFT 快速傅里叶变换 hdu1402 hdu4609
- 大端和小端的区别和方便记忆的方法
- POJ - 2484 A Funny Game
- 8数码问题的C++解决方案
- Android LaunchMode and StartActivityForResult
- Ehcache介绍
- 多播(组播)与广播的技术实现
- 20150726 Web前端开发基础html+css
- dwr js与java互相调用
- php函数注释