코딩이 처음이고 링크드리스트를 반복하려고 합니다. 아래는 질문입니다. 1에서 8 사이의 요소를 갖는 Linkedlist를 생성합니다. 목록을 반대로 해야 하지만 하나의 조건, 즉 num이 2로 주어지면 출력은 다음과 같은 방식으로 생성되어야 합니다. [2, 1,4,3,6,5,8,7].
아래에서 code를 찾으십시오. num이 2 또는 4인 경우 해당 답변을 얻을 수 있었습니다.
LinkedList<Integer> list= new LinkedList<>();
for (int i= 1; i < 9; i++) {
list.add(i);
}
int n= 2;
LinkedList<Integer> outList= new LinkedList<>();
while(list.size()>0) {
for(int i=n-1;i>=0;i--) {
outList.add(list.get(i));
list.remove(i);
}
}
System.out.println(outList);
이것이 적절한 방법인지 모르겠습니다. 적절한 솔루션을 도와주세요.
내가 직면한 문제는 num을 3으로 지정하는 경우입니다. 마지막 반복에 요소가 2개뿐이므로 IndexOutOfBoundsException이 발생합니다.
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
at java.base/java.util.LinkedList.checkElementIndex(LinkedList.java:559)
at java.base/java.util.LinkedList.get(LinkedList.java:480)
at com.src.User.main(User.java:21)