Rotate a Linked List
Given the head of a singly linked list and an integer 'n' rotate the linked list by 'n'.
Statement
Given the head of a singly linked list and an integer n
, rotate the linked list by n
and return the rotated linked list.
Example
Below is an example of sample input and expected output linked list after rotating by .
Note: The value of
n
can be larger than the length of the linked list.
Sample input
[1, 2, 3, 4, 5]
2
Expected output
[4, 5, 1, 2 ,3]
Note: For positive integers, we’ll do a positive rotation and for negative integers, we’ll do a left rotation.
Below is an input linked list and output after rotating by :
Try it yourself
main.cpp
LinkedList.cpp
LinkedListNode.cpp
#include <vector>#include "LinkedList.cpp"using namespace std;typedef LinkedListNode* NodePtr;NodePtr RotateList(NodePtr head, int n) {//TODO: Write - Your - Codereturn head;}
Solution
Naive solution
To rotate by one node, we find the last node of the linked list and make it the head of the linked list. One way of solving our original problem is to rotate by one node the last node of a linked list, ...