LeetCode:Rotate List(旋转链表)
来源:互联网 发布:淘宝找同款插件 编辑:程序博客网 时间:2024/06/05 16:32
原题: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,
For example:
Given 1->2->3->4->5->NULL and k = 2,
return 4->5->1->2->3->NULL.
给定一个链表,保留后k个结点,将之前的结点旋转到链尾。
解法:用双指针,慢指针与快指针之间相距k位。同时对k进行处理k%=length(list)。
这里的双指针可以只用一个指针替代。首先遍历一遍求得链表长度,重新计算k。然后指针从头遍历(length-k)次,重新连接链表,返回头结点。
时间复杂度为O(N)。
class Solution {public: ListNode *rotateRight(ListNode *head, int k) { if(head==NULL || k<=0)return head;int len = 1;ListNode *p = head;while(p->next){++len;p = p->next;}k %= len;p->next = head;//circle listp = head;for(int i=1;i<len-k;++i)//move (len-k-1) timesp = p->next;head = p->next;p->next = NULL;return head; }};
0 0
- Rotate List 旋转链表 @LeetCode
- LeetCode(Rotate List) 旋转链表
- LeetCode:Rotate List(旋转链表)
- Leetcode Rotate List 旋转链表
- LeetCode OJ 之 Rotate List (链表旋转)
- LeetCode 61. Rotate List(旋转链表)
- LeetCode-----61. Rotate List(循环旋转链表)
- Leetcode 61. Rotate List (旋转链表)
- leetcode Rotate list (链表旋转)的python实现
- Rotate List 旋转链表
- 旋转链表---Rotate List
- Rotate List(链表旋转)
- Rotate List 部分旋转链表
- [Lintcode]Rotate List旋转链表
- 61. Rotate List (旋转链表)
- leetCode 61.Rotate List (旋转链表) 解题思路和方法
- leetcode解题61. Rotate List java版(旋转链表)
- 【LeetCode】 Rotate List 循环链表
- ios面试题
- 参数维纳滤波(Parametric Wiener Filter)
- 使用Spring的FactoryBean创建同步队列线程池
- java中最常用的jar包的用途说明
- 最小生成树和次小生成树
- LeetCode:Rotate List(旋转链表)
- iOS获取文件的文件名和后缀
- Eclipse让代码自动换行(WordWarp)
- maven很好的入门教程和创建web项目的注意事项
- Android 动画介绍
- Xcode 6 LaunchImage 载入界面标准大小【原创】
- cocos2dx 网络编程(CCHttpRequest和CURL两个方式)
- 利用itextsharp导出pdf
- oracle 两个时间函数的探究