我正在嘗試過去一年的問題,並且遇到以下問題。 問題1使用遞歸打印單向鏈表的反向方法
在下面的可能假設的ListIterator接口和LinkedList類與以下方法
public interface ListIterator<E>
{
E next();
boolean hasNext();
}
public class LinkedList<E>
{
public void addLast(E obj){..}
public int size(){..}
public ListIterator<E> listIterator(){...}
}
成品以下,使用在的ListIterator上面所列的方法中給出的printBackward方法的設計的存在接口和LinkedList類。你不應該引入任何新的變量tinto方法。在你的回答中,不要複製整個方法。寫入初始化1,初始化2,塊1,塊2,塊3的內容。 printBackward方法應該在單個列表中遞歸地寫入遞歸。參數n指定列表的大小。
public class MyLinkedList<E> extends LinkedList<E>
{
public void printBackward(int n)
{
if(n > 0){
ListIterator<E> itr = /**Initialisation 1**/ list1.listIterator();
int count = /**Initialisation 2**/ 0;
E item;
while(itr.hasNext())
{
/**Block 1**/ addLast(list1); printBackward(); count --;
}
/**Block 2**/ E.next;
}else
/**Block 3**/ return;
}
}
}
我已經插入我的答案旁/ ** .. ** /但我不確定他們是否是正確的。如果有人能幫助我糾正我的錯誤,將不勝感激
如果你只印刷,那麼你不需要向鏈表添加任何東西。 – Makoto
那麼,你不能改變printBackward方法?爲什麼ListIterator itr重新初始化? –
davidmontoyago
@davidmontoyago,我被授予了代碼,只允許用/**...**/改變這一點。我不知道爲什麼它被重新初始化......有一點幫助? – coralbeans