我是数据结构的新手,分别在链接列表和我正在尝试的链接中进行探索 实现以下目标..
1)给定一个链表,反向交替节点并在末尾追加
Input List: 1->2->3->4->5->6
Output List: 1->3->5->6->4->2
2)给定一个链表,反转备用节点并将它们附加到列表的末尾。额外允许的空间是O(1)
Input List: 12->14->16->18->20
Output List: 12->16->20->18->14
请告知逻辑,我如何在java.Thanks中预先实现这个
答案 0 :(得分:0)
在这里,伙计们:这是第一个。尝试第二个类似的事情。快乐的编码.. :)
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);
}
O / P:
[1,3,5,6,4,2]
答案 1 :(得分:0)
尝试以下方法
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);
}