1
/**
2
* Definition for singly-linked list.
3
* struct ListNode {
4
* int val;
5
* ListNode *next;
6
* ListNode() : val(0), next(nullptr) {}
7
* ListNode(int x) : val(x), next(nullptr) {}
8
* ListNode(int x, ListNode *next) : val(x), next(next) {}
9
* };
10
*/
11
class Solution {
12
public:
13
// like if it is useful to you
14
ListNode *rotateRight(ListNode *head, int k) {
15
if (head == NULL) {
16
return head;
17
}
18
vector<int> nums;
19
ListNode *temp = head;
20
while (temp != NULL) {
21
nums.push_back(temp->val);
22
temp = temp->next;
23
}
24
// if k greater than size;
25
k = k % nums.size();
26
// rotating vector
27
reverse(nums.begin(), nums.end());
28
reverse(nums.begin(), nums.begin() + k);
29
reverse(nums.begin() + k, nums.end());
30
// replace value of list
31
temp = head;
32
for (int i = 0; i < nums.size(); i++) {
33
temp->val = nums[i];
34
temp = temp->next;
35
}
36
return head;
37
}
38
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0