LeetCode算法题目:Rotate List
2017-03-31 13:52
323 查看
题目:
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.
分析:
先遍历一遍,得出链表的长度len,然后把链表首尾相连(构成环),然后令K=len-K%len,得出截断环的位置,移动相应位置后,将环截断即得到结果。代码:
/** * 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==nullptr||k==0) return head; int len=1; ListNode *p=head; while(p->next){ len++; p=p->next; } p->next=head; k=len-k%len; for(int i=0;i<k;i++){ p=p->next; } head=p->next; p->next=nullptr; return head; } };
相关文章推荐
- LeetCode中几道链表反转相关题目(Reorder List、Rotate List、Reverse Nodes in k-Group)
- LeetCode算法题目:Reverse Linked List II
- leetcode做题总结,题目Rotate List 2012/03/27
- 【LeetCode-面试算法经典-Java实现】【061-Rotate List(旋转单链表)】
- [leetcode.com]算法题目 - Remove Duplicates from Sorted List
- LeetCode Online Judge 题目C# 练习 - Rotate List
- [LeetCode]Rotate List
- [leetcode]Rotate List
- [LeetCode] Rotate List 解题报告
- [LeetCode] Rotate List
- [leetcode.com]算法题目 - Symmetric Tree
- LeetCode Online Judge 题目C# 练习 - Rotate Image
- [leetcode]Rotate List
- [leetcode.com]算法题目 - Plus One
- [leetcode.com]算法题目 - Same Tree
- [leetcode.com]算法题目 - Gray Code
- [leetcode] Rotate List
- LeetCode : Rotate List
- LeetCode Online Judge 题目C# 练习 - Reverse Linked List II
- leetcode 70: Rotate List