我是編碼新手,我正在嘗試迭代鏈表。下面是問題:創建一個元素范圍從 1 到 8 的 Linkedlist。我需要反轉串列,但有一個條件,即如果 num 為 2。輸出應按以下方式生成:[2, 1,4,3,6,5,8,7]。
請在下面找到代碼。如果 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。我會得到 IndexOutOfBoundsException,因為上一次迭代中只有 2 個元素。
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)
uj5u.com熱心網友回復:
它可以添加到串列中(如佇列),然后從后面檢索(如堆疊)。所以它不需要索引。
LinkedList<Integer> list = new LinkedList<>();
for (int i = 1; i < 9; i ) {
list.addLast(i);
}
int n = 2;
System.out.println(list);
LinkedList<Integer> outList = new LinkedList<>();
while(list.size()>0) {
outList.addLast(list.removeLast());//last element retrieved first
}
System.out.println(outList);
uj5u.com熱心網友回復:
能否請您也粘貼問題描述?我不確定您的問題是否清楚您要解決什么問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/419807.html
標籤:
