我正在尝试过去一年的问题以获得重新调整,并坚持下面的问题。 问题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接口和LinkedList类中列出的方法完成下面给出的printBackward方法的设计。您不应该在方法中引入任何新变量。在你的答案中,不要复制整个方法。写入初始化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;
}
}
}
我在/ ** .. ** /旁边插入了我的答案,但我不确定它们是否正确。如果有人能帮我纠正错误,我将不胜感激
答案 0 :(得分:0)
获取列表的长度并创建一个for循环以向后浏览它们,例如
for(int i = *sizeOfList*; i > 0; i--)
{
System.out.println(currentItem[i]);
}
答案 1 :(得分:0)
printBackward 方法设计非常奇怪,似乎他们希望你使用迭代器无论在每次递归中到达最后一个位置,它都必须是性能/效果这里不是一个问题,或者他们想看看你有多诙谐。在下面找到解决方案:
public void printBackward(int n) {
if (n > 0) {
ListIterator<E> itr = listIterator(); /** Initialisation 1 **/
int count = 0; /** Initialisation 2 **/
E item;
while (itr.hasNext()) {
/** Block 1 **/
item = itr.next();
if (++count == n) {
System.out.println(item); //prints here
printBackward(n-1);
}
}
/** Block 2 **/
// nothing
} else {
/** Block 3 **/
// nothing
}
}
您可以使用java.util.LinkedList
和java.util.ListIterator
进行测试,如下所示:
public static void main(String[] args) {
MyLinkedList<String> list = new MyLinkedList<String>();
list.add("1");
list.add("2");
list.add("3");
list.printBackward(list.size());
}
答案 2 :(得分:0)
public void printBackward(int n) {
if (n > 0) {
ListIterator<E> itr = listIterator(); /** Initialisation 1 **/
int count = 0; /** Initialisation 2 **/
E item;
while (itr.hasNext()) {
/** Block 1 **/
item = itr.next();
if (count == n-1) {
System.out.println(item); //prints here
count++;
}
}
/** Block 2 **/
printBackward(n-1);
} else {
/** Block 3 **/
// nothing
}
}