Leetcode132: Rotate List
2015-11-01 17:07
399 查看
Given a list, rotate the list to the right by k places, where k is non-negative.
For example:
Given
return
需要注意的是k的值可能比链表的长度大,所以需要取余。再定义两个指针,一个超前另一个k步,然后同时向右走,直到前面的指针到达尾部,那么后面的指针所指的节点就是新的链表的尾部。
For example:
Given
1->2->3->4->5->NULLand k =
2,
return
4->5->1->2->3->NULL.
需要注意的是k的值可能比链表的长度大,所以需要取余。再定义两个指针,一个超前另一个k步,然后同时向右走,直到前面的指针到达尾部,那么后面的指针所指的节点就是新的链表的尾部。
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* rotateRight(ListNode* head, int k) { if(!head) return head; ListNode* l = head; ListNode* r = head; int n = 1; while(l->next) { l = l->next; n++; } k %= n; l = head; while(k) { r = r->next; k--; } while(r->next) { r = r->next; l = l->next; } r->next = head; head = l->next; l->next = NULL; return head; } };
相关文章推荐
- SqlServer2005 恢复数据库时出现Exclusive access could not be obtained because the database is in use 的解决方法
- Android坐标系 scrollTo方法的原理
- 第九周项目三稀疏矩阵相加
- 杭电acm2187
- 图像处理与计算机视觉:基础,经典以及最近发展(5)计算机视觉
- apk反编译和动态调试smali实例收集
- apache httpd学习笔记一 - 下载安装并初步了解
- Razor视图引擎语法
- unknwn filesystem entering rescue mode grup rescue解决办法
- 重读php文档
- openstack kilo开启lbaas功能
- hihocoder #1069 线段树
- 图像处理与计算机视觉:基础,经典以及最近发展(4)图像处理与分析
- AppDelegate生命周期
- ThinkPHP学习实践(二)单字母函数用法
- 表单提交关于name[ ]
- Mac 使用小结
- eclipse 弹出智能提示、代码自动换行
- Java虚拟机基础知识
- Activity配置文件中的intent-filter