贴上代码, 我想问一下嵌套类ReverseArrayIterator中的next() 方法该怎样写,才能完成链表
/**
* 下压栈链表实现
*
* @author maji
* @date 2018-7-14
*/
public class Stack<Item> implements Iterable<Item> {
private Node first;
private int N;
private class Node {
Item item;
Node next;
}
public boolean isEmpty() {
return first == null;
}
public int size() {
return N;
}
public void push(Item item) {
Node oldFirst = first;
first = new Node();
first.item = item;
first.next = oldFirst;
N++;
}
public Item pop() {
Item item = first.item;
first = first.next;
N--;
return item;
}
@Override
public Iterator<Item> iterator() {
return new ReverseArrayIterator();
}
private class ReverseArrayIterator implements Iterator<Item> {
private int i = N;
@Override
public boolean hasNext() {
return i > 0;
}
@Override
public Item next() {
for (Node x = first; x != null; x = x.next) {
return x.item;
}
}
@Override
public void remove() {
}
}
}