[LeetCode] 092: Rotate List
2017-09-10 20:52
267 查看
[Problem]
Given a list, rotate the list to the right by k places, where k is non-negative.
For example:
Given
return
[Solution]
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->NULLand k =
2,
return
4->5->1->2->3->NULL.
[Solution]
class Solution { public: ListNode *rotateRight(ListNode *head, int k) { // Note: The Solution object is instantiated only once and is reused by each test case. // invalid if(NULL == head || k <= 0)return head; // get the length of the list int len = 0; ListNode* p = head; while(p != NULL){ len++; p = p->next; } // reset k k %= len; if(k == 0)return head; // move k steps forward p = head; for(int i = 0; i < k; ++i){ p = p->next; } // cut the list into two parts, and link then reversed ListNode *prep = p; // the node before p; ListNode *q = head; // the node two be cut ListNode *preq = q; // the node before q; while(p != NULL){ preq = q; q = q->next; prep = p; p = p->next; } // link preq->next = NULL; prep->next = head; head = q; return head; } };说明:版权所有,转载请注明出处。Coder007的博客
相关文章推荐
- LeetCode Rotate List
- LeetCode:Rotate List
- LeetCode --- 61. Rotate List
- Leetcode 61. Rotate List
- [LeetCode] Rotate List
- Leetcode Problem.—Rotate List C++实现
- Rotate List -- LeetCode
- LeetCode: Rotate List [060]
- Leetcode——61. Rotate List
- LeetCode(60)RotateList
- LeetCode之“链表”:Rotate List
- leetcode——61——Rotate List
- LeetCode-Rotate List
- [LeetCode]Rotate List@python
- LeetCode题解:Rotate List
- [leetcode] Rotate List
- LeetCode--Rotate List
- LeetCode 61. Rotate List
- [Leetcode]#61 Rotate List
- LeetCode 61 - Rotate List