# Rotate linked list clockwise by k nodes in node js

Js program for Rotate linked list clockwise by k nodes. Here mentioned other language solution.

``````/*
Node JS program for
Rotate a list by moving each element
k times to the right.
Or clockwise rotation of linked list
*/
{
constructor(data)
{
this.data = data;
this.next = null;
}
}
class SingleLL
{
constructor()
{
this.tail = null;
}
{
{
}
else
{
// Append the node at last position
this.tail.next = node;
}
this.tail = node;
}
display()
{
{
return;
}
while (temp != null)
{
process.stdout.write(" " + temp.data + " →");
// Visit to next node
temp = temp.next;
}
console.log(" NULL");
}
// This are perform the linked list rotation
rotation(k)
{
// Define some auxiliary variable
var count = 0;
// Count number of node in linked list
while (auxiliary != null)
{
// visit to next node
auxiliary = auxiliary.next;
count++;
}
if (count <= 1)
{
// When have less than 2 nodes in linked list
return;
}
// Get actual rotation
count = k % count;
if (count == 0)
{
// When actual linked list are not affected
return;
}
// Find the rotational node
while (count > 1)
{
// Visit to next node
auxiliary = auxiliary.next;
count--;
}
// Connecting the last node to first node of linked list
// Set new last node
this.tail = auxiliary;
// Set that there is no node after of tail
this.tail.next = null;
}
// Handles the request to perform rotation
// k is indicate node rotation
clockwiseRotation(k)
{
if (k <= 0)
{
// When invalid given k
return;
}
{
return;
}
console.log(" Before rotate ");
this.display();
console.log(" Given k : " + k);
// Perform rotation
this.rotation(k);
console.log(" After rotate ");
this.display();
console.log("\n");
}
}

function main()
{
var sll1 = new SingleLL();
var sll2 = new SingleLL();
// 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → NULL
// 4 → 9 → 7 → 3 → 8 → 6 → -2 → NULL
// Test case
sll1.clockwiseRotation(3);
sll2.clockwiseRotation(18);
}
// Start program execution
main();``````

Output

`````` Before rotate
1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → NULL
Given k : 3
After rotate
4 → 5 → 6 → 7 → 8 → 1 → 2 → 3 → NULL

Before rotate
4 → 9 → 7 → 3 → 8 → 6 → -2 → NULL
Given k : 18
After rotate