Rotate a Linked List Java Program - The Coding Shala

Home >> Interview Questions >> Rotate a linked list

Rotate a Linked List

Given a linked list, rotate the list to the right by k places, where k is non-negative.



Example 1:

Input: 1->2->3->4->5->NULL, k = 2

Output: 4->5->1->2->3->NULL

Explanation:
rotate 1 steps to the right: 5->1->2->3->4->NULL
rotate 2 steps to the right: 4->5->1->2->3->NULL

Example 2:
Input: 0->1->2->NULL, k = 4
Output: 2->0->1->NULL
Explanation:
rotate 1 steps to the right: 2->0->1->NULL
rotate 2 steps to the right: 1->2->0->NULL
rotate 3 steps to the right: 0->1->2->NULL
rotate 4 steps to the right: 2->0->1->NULL

Rotate a Linked List Java Program

Approach 1:
Add tail to head and move new pointer to len - k%len length.

Java Code 

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode rotateRight(ListNode head, int k) {
        if(head == null || head.next == null) return head;
        int len = 1;
        ListNode newHead = head;
        while(newHead.next != null){
            len++;
            newHead = newHead.next;
        }
        k = len-(k%len);
        newHead.next = head;
        while(k-- > 1) head = head.next;
        newHead = head.next;
        head.next = null;
        return newHead;
    }
}



Other Posts You May Like
Please leave a comment below if you like this post or found some error, it will help me to improve my content.

Comments

Popular Posts from this Blog

Time Complexity, Space Complexity, Asymptotic Notations - The Coding Shala

LeetCode - Crawler Log Folder Solution - The Coding Shala

Graph Representation using Adjacency Matrix - The Coding Shala

Java Method Overloading - The Coding Shala

Client-Server Java Program (Socket Programming) - The Coding Shala