首页 > 解决方案 > java - 如何通过使用javalinkedlist将列表中的每个元素向右移动n次来旋转列表

问题描述

示例:“ID_A01”->“ID_A02”->“ID_A03”->“ID_A04”->“ID_A05”->“ID_A06”->null

n=2

您应该返回以下列表:“ID_A05”->“ID_A06”->“ID_A01”->“ID_A02”->“ID_A03”->“ID_A04”->null

标签: java

解决方案


您可以使用LinkedList 类中实现removeLastaddFirst函数,并循环它 n 次。

import java.util.*;

public class HelloWorld{

    public static void main(String []args){
       LinkedList<String> linkedlist = new LinkedList<String>();

       linkedlist.add("Item1");
       linkedlist.add("Item2");
       linkedlist.add("Item3");
       linkedlist.add("Item4");
       linkedlist.add("Item5");

       System.out.println("Linked List Content: " +linkedlist);
       rotate(linkedlist, 2);
       System.out.println("Linked List Content: " +linkedlist);
    }

    public static void rotate(LinkedList linkedlist, int n) {
       for (int i=0; i<n; i++) {
           Object item = linkedlist.removeLast();
           linkedlist.addFirst(item);
       }
    }
}

推荐阅读