Java 重新排列链表元素
我不熟悉数据结构,特别是在链表中探索它,我正在尝试使用链表 要实现以下目标 1) 给定一个链表,反转备用节点并在末尾追加Java 重新排列链表元素,java,data-structures,linked-list,Java,Data Structures,Linked List,我不熟悉数据结构,特别是在链表中探索它,我正在尝试使用链表 要实现以下目标 1) 给定一个链表,反转备用节点并在末尾追加 Input List: 1->2->3->4->5->6 Output List: 1->3->5->6->4->2 2) 给定一个链表,反转备用节点并将其附加到列表的末尾。额外允许的空间为O(1) 请告知逻辑以及如何在java中实现此功能。提前感谢您,伙计:这是第一个。。对第二个尝试类似的方法。快乐编码
Input List: 1->2->3->4->5->6
Output List: 1->3->5->6->4->2
2) 给定一个链表,反转备用节点并将其附加到列表的末尾。额外允许的空间为O(1)
请告知逻辑以及如何在java中实现此功能。提前感谢您,伙计:这是第一个。。对第二个尝试类似的方法。快乐编码…)
publicstaticvoidmain(字符串[]args){
列表l1=新链接列表();
l1.加入(1);
l1.加入(2);
l1.加入(3);
l1.加入(4);
l1.加入(5);
l1.加入(6);
列表模板列表=新建LinkedList();
对于(inti=0;i=0;i=i-2){//从LL的尾部添加可选元素n-1,n-3,…0/1
templast.add(l1.get(i));
}
System.out.println(圣殿骑士);
}
O/p:
[1,3,5,6,4,2]试试下面的方法
public static List<Integer> arrange(List<Integer> input) {
Integer[] temp = new Integer[input.size()];
for(int i = 0; i < input.size(); i++) {
if(i%2 != 0) {
temp[input.size() - (i+1)/2] = input.get(i);
} else {
temp[i/2] = input.get(i);
}
}
return Arrays.asList(temp);
}
公共静态列表排列(列表输入){
整数[]临时=新整数[input.size()];
对于(int i=0;i
您的问题标题具有误导性。。这不是洗牌。您正在根据某些标准重新排列元素。@TheLostMind potato?有什么区别?@Lostmind。。。谢谢你改变了主意subject@tuntutnsdsds对我来说,它们是一样的thing@tuntutnsdsds-您使用的是默认LinkedList实现还是您自己的自定义实现?解释发生了什么?至少我有some@KickButtowski-在注释中添加了解释:)
public static void main(String[] args) {
List<Integer> l1 = new LinkedList<Integer>();
l1.add(1);
l1.add(2);
l1.add(3);
l1.add(4);
l1.add(5);
l1.add(6);
List<Integer> tempList = new LinkedList<Integer>();
for(int i=0;i<l1.size();i=i+2){ // from 0, add alternative elements 0,2,4....
tempList.add(l1.get(i));
}
for(int i=l1.size()-1;i>=0;i=i-2){ // from tail of LL add alternative elements n-1,n-3,..0/1
tempList.add(l1.get(i));
}
System.out.println(tempList);
}
public static List<Integer> arrange(List<Integer> input) {
Integer[] temp = new Integer[input.size()];
for(int i = 0; i < input.size(); i++) {
if(i%2 != 0) {
temp[input.size() - (i+1)/2] = input.get(i);
} else {
temp[i/2] = input.get(i);
}
}
return Arrays.asList(temp);
}