LeetCode-61. Rotate List
来源:互联网 发布:淘宝助理使用教程视频 编辑:程序博客网 时间:2024/06/05 18:14
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
.
需要考虑的边界情况:
(1)空链表直接返回NULL;
(2)链表长度等于k时、小于k时,对k的处理。
思路:首先遍历链表得链表的长度,再通过快慢指针找到新表头,具体做法是先让快指针走k歩,再让两指针同时走直到快指针走到最后一位。此时慢指针的后继指针指向的就是新头指针。
class Solution {public: ListNode *rotateRight(ListNode *head, int k) { if(head==NULL) return head; int len=0; ListNode *node=head; while(node!=NULL){ len++; node=node->next; } k=k%len; if(k==0) return head; ListNode *fast=head; ListNode *slow=head; for(int i=0;i<k;++i){ fast=fast->next; } while(fast->next!=NULL){ fast=fast->next; slow=slow->next; } fast->next=head; head=slow->next; slow->next=NULL; return head; }};
阅读全文
0 0
- [LeetCode]61.Rotate List
- LeetCode --- 61. Rotate List
- [Leetcode] 61. Rotate List
- [leetcode] 61.Rotate List
- [leetcode] 61. Rotate List
- leetcode 61. Rotate List
- LeetCode 61. Rotate List
- [leetcode] 61. Rotate List
- 61. Rotate List LeetCode
- leetcode 61. Rotate List
- LeetCode 61. Rotate List
- leetcode 61. Rotate List
- [LeetCode]61. Rotate List
- LeetCode 61. Rotate List
- LeetCode *** 61. Rotate List
- LeetCode 61. Rotate List
- [Leetcode]61. Rotate List
- LeetCode - 61. Rotate List
- 代码实现高低电平反转或0-1连续输出
- 出题
- 何恺明相关工作小结
- Java为什么选择unicode字符集?字符编码的那些事
- error: jump to label ‘XXXX’ [-fpermissive]
- LeetCode-61. Rotate List
- Git 学习笔记(入门教程)
- 【BUG玩一天系列】Java spilt方法需要注意的地方
- UltraEdit 取消文件自动备份
- 反射学习笔记
- libevent部分解析
- 关于Linux的alias命令
- MATLAB动画绘制
- Linux