首页 > 代码库 > Rotate List
Rotate List
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 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next; 6 * ListNode(int x) : val(x), next(NULL) {} 7 * }; 8 */ 9 class Solution {10 public:11 ListNode *rotateRight(ListNode *head, int k) {12 13 int size = 0;14 ListNode *p = head;15 while(p != NULL)16 {17 size++;18 p = p->next;19 }20 21 if(size == 0 || size == 1)22 return head;23 24 k = k % size;25 for(int i = 0; i < k; i++)26 {27 ListNode *pretail = head;28 while(pretail->next->next != NULL)29 pretail = pretail->next;30 31 ListNode *tail = pretail->next;32 pretail->next = NULL;33 tail->next = head;34 head = tail;35 }36 37 return head;38 }39 };
Rotate List
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。