61. Rotate List
来源:互联网 发布:指南针软件下载免费版 编辑:程序博客网 时间:2024/05/16 14:47
Given a list, rotate the list to the right by k places, where k is non-negative.
For example:
Given 1->2->3->4->5->NULL
and k = 2
,
return 4->5->1->2->3->NULL
.
将链表向右旋转k次。关键是要找到list_size-k处的节点ptr和ptr的前驱节点pre和最后一个结点tail,然后使pre的next指向NULL,使tail的next指向head(即将前面部分接在后面部分的后面),使head指向ptr,最后返回head。
代码:
class Solution{public:ListNode* rotateRight(ListNode* head, int k){if(!head) return NULL;int size = 0;ListNode* ptr = head, * tail, * pre;do{size++;tail = ptr;}while(ptr = ptr->next);k = size - (k % size);if(k == size) return head;ptr = head;for(int i = 0; i < k; ++i){pre = ptr;ptr = ptr->next;}pre->next = NULL;tail->next = head;head = ptr;return head;}};
0 0
- [LeetCode]61.Rotate List
- 61. Rotate List
- LeetCode --- 61. Rotate List
- [Leetcode] 61. Rotate List
- 61. Rotate List
- [leetcode] 61.Rotate List
- [leetcode] 61. Rotate List
- 61. Rotate List
- leetcode 61. Rotate List
- LeetCode 61. Rotate List
- [leetcode] 61. Rotate List
- 61. Rotate List
- 61. Rotate List
- 61. Rotate List LeetCode
- leetcode 61. Rotate List
- 61. Rotate List
- 61. Rotate List
- 61. Rotate List
- Centos6.5 下安装 python setuptools
- 两个数的最大公约数
- 提示用户输入两个圆的中心坐标和各自的半径值,然后决定第二个圆是否在第一个圆内, 还是和第一个圆重叠
- TCP的四种定时器
- 分享一些javascript与正则表达式常用的调试工具
- 61. Rotate List
- 计算下面数列的和值。 1/3+3/5+5/7+....+97/99
- 如果一个正整数等于除它本身之外其他所有除数之和,就称之为完全数。例如:6是完全数,* 因为6 = 1+2+3;下一个完全数是28 = 14+7+4+2+1。 10000以下的完全数有四个
- RabbitMQ
- leetcode 2. Add Two Numbers
- 横竖屏切换时候Activity的生命周期的总结
- Matlab编程与数据类型 -- 出错处理语句try/catch/end
- 给定输入的字符串,将字符串中的单词顺序颠倒,但要保持单词的字符顺序。
- MySQL的初步使用(2)———SQL语句DRL详解