# Rotate linked list clockwise by k nodes in java Java program for Rotate linked list clockwise by k nodes. Here more solutions.

``````/*
Java program for
Rotate a list by moving each element
k times to the right.
Or clockwise rotation of linked list
*/
{
public int data;
{
this.data = data;
this.next = null;
}
}
public class SingleLL
{
public SingleLL()
{
this.tail = null;
}
{
{
}
else
{
// Append the node at last position
this.tail.next = node;
}
this.tail = node;
}
public void display()
{
{
return;
}
while (temp != null)
{
System.out.print(" " + temp.data + " →");
// Visit to next node
temp = temp.next;
}
System.out.println(" NULL");
}
// This are perform the linked list rotation
public void rotation(int k)
{
// Define some auxiliary variable
int 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
public void clockwiseRotation(int k)
{
if (k <= 0)
{
// When invalid given k
return;
}
{
return;
}
System.out.println(" Before rotate ");
display();
System.out.println(" Given k : " + k);
// Perform rotation
rotation(k);
System.out.println(" After rotate ");
display();
System.out.println("\n");
}
public static void main(String[] args)
{
SingleLL sll1 = new SingleLL();
SingleLL 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);
}
}
``````

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