Rotate List
来源:互联网 发布:量子力学知乎 编辑:程序博客网 时间:2024/06/02 03:21
class Solution {public: ListNode *rotateRight(ListNode *head, int k) { if(head == NULL || k == 0) return head; ListNode dummy(-1); dummy.next = head; ListNode *slow = &dummy, *fast = &dummy; for(int i=0; i<k; ++i) { if(fast->next == NULL) fast = head; else fast = fast->next; } while(fast->next) { slow = slow->next; fast = fast->next; } ListNode *newhead = slow->next; slow->next = NULL; //here, if dummy.next is replaced with head, then //there may be circle formed. i.e. {1,2} k=2 fast->next = dummy.next; return newhead; }};
8.28最新代码:先求len,因为k有可能大于len,因此需要k%len。首尾相连,然后再往后跑len-k步。
class Solution {public: ListNode *rotateRight(ListNode *head, int k) { if(head == NULL || head->next == NULL || k == 0) return head; ListNode *p = head; int len = 1; while(p->next) { p = p->next; len++; } k = len - k%len; p->next = head; while(k--) p = p->next; head = p->next; p->next = NULL; return head; }};
0 0
- Rotate List
- Rotate List
- Rotate List
- Rotate List
- Rotate List
- Rotate List
- Rotate List
- Rotate List
- Rotate List
- Rotate List
- Rotate List
- rotate-list
- Rotate List
- Rotate List
- Rotate List
- Rotate List
- Rotate List
- Rotate List
- volate 和 const 的用法
- 简单URL验证正则表达式
- 模仿微视视频录制、支持按下录制抬起暂停以及断点进度条(基于javacv)
- Data guard理论基础知识
- 【cocos2d-x】让XCode运行时自动更新资源【IOS】
- Rotate List
- Cocoa Stream 系列3--NSOutputStream的使用
- 虚拟地球原理与实现
- Ubuntu下 rsync同步文件实例
- 《例说XBee无线模块开发》
- 代码而已
- RPG游戏背包和任务系统
- 查看samba端口
- HDU解题报告——1019