java - 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
解决方案
您可以使用LinkedList 类中实现removeLast
的addFirst
函数,并循环它 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);
}
}
}
推荐阅读
- objective-c - 有什么方法可以在 macOS 上获取系统定义目录的本地化显示名称?
- android - 片段堆栈管理
- python-3.x - python tkinter中的动态表单小部件交互
- java - 使用 junit 在 Gradle 中运行集成测试
- c# - 如何在 ASP.NET Core 中解析移动视图
- sql - 有没有办法通过 SQL 获取没有扩展名的文件名?
- git-log - 我正在尝试从 Grgit 日志中获取提交正文,这可能吗?
- python - Python 点击在帮助页面中显示模块版本
- c# - 实现相互使用的类型化接口的问题
- arrays - 如何在 ngFor 中将数组拆分为四个项目?