Rotate List
2015-01-16 22:40
197 查看
Given a list, rotate the list to the right by k places, where k is non-negative.
For example:
Given
return
注意下k>size的情况,即倒数的k%size个。
代码:
For example:
Given
1->2->3->4->5->NULLand k =
2,
return
4->5->1->2->3->NULL.
注意下k>size的情况,即倒数的k%size个。
代码:
class Solution { public: int getLen(ListNode* head){ int res=0; ListNode* p=head; while(p!=NULL){ ++res; p=p->next; } return res; } ListNode *rotateRight(ListNode *head, int k) { if(head==NULL||k==0) return head; int size=getLen(head); if(k>size) k=k%size; if(k==size||k==0) return head; int i=size-k; int j=1; ListNode* p=head; while(j<i){ p=p->next; ++j; } ListNode* q=p->next; ListNode* resHead=q; p->next=NULL; while(q->next!=NULL){ q=q->next; } q->next=head; return resHead; } };
相关文章推荐
- [Leetcode] Rotate List
- LeetCode-Rotate List
- Rotate List
- Rotate List
- 【LeetCode with Python】 Rotate List
- 【LeetCode】Rotate List
- LeetCode - Refresh - Rotate List
- Rotate List
- Rotate List
- Rotate List
- Rotate List
- Leetcode 61. Rotate List
- LeetCode 61 Rotate List
- 61. Rotate List
- Rotate List
- leetcode -- Rotate List
- Rotate List 旋转链表
- Rotate List
- Rotate List
- [C++]LeetCode: 76 Rotate List