我对用于实现队列的 LinkedList
有疑问。如何将定义元素之前的所有元素移动到尾部?假设我需要将第三个元素之前的所有元素移动到尾部(请参见下面的示例)。这意味着数字1
和2
应该移到尾部以获得:3->4->1->2
。
是否可以执行类似于 list1.moveToTheTail(startElem,endElem);
的操作,其中 startElem
和 endElem
指示元素的边界移到尾部?
导入java.util.LinkedList
;
public class Test {
public static void main(String[] args) {
LinkedList<Integer> list1 = new LinkedList<Integer>();
list1.addLast(1);
list1.addLast(2);
list1.addLast(3);
list1.addLast(4);
list1.
System.out.println(list1);
}
}
最佳答案
不,没有这样的功能..很遗憾,因为从前到尾的操作只是将“指针”更改为第一个元素。
但是您想要一个函数也从列表中间移动......我们开始:
public static void moveToTail(LinkedList<?> list,int startElement, int endElement) {
if (startElement <0 )
return ;
if (endElement < startElement)
return;
if (endElement >= list.size())
return;
for(int i = startElement ; i < endElement ; ++i) {
//yeah it has to be startElement and not i
list.addLast(list.remove(startElement));
}
}
关于java - 如何将LinkedList中定义元素之前的所有元素移动到尾部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8961355/