In the private class LinkedListIterator (which is internal to MyLinkedList), imp
ID: 3806190 • Letter: I
Question
In the private class LinkedListIterator (which is internal to MyLinkedList), implement method remove(). This method removes from the list the last element that was returned by next(). This call can only be made once per call to next(). It can be made only if add(E) has not been called after the last call to next.
private class LinkedListIterator
implements java.util.Iterator<E> {
private Node<E> current = head; // Current index
@Override
public boolean hasNext() {
return (current != null);
}
@Override
public E next() {
E e = current.element;
current = current.next;
return e;
}
@Override
public void remove() {
System.out.println("Implementation left as an exercise");
}
}
Explanation / Answer
I have written 2 Types of Methods . Take which ever is helpful for you.
private class LinkedListIterator
implements java.util.Iterator<E> {
private Node<E> current = head; // Current index
@Override
public boolean hasNext() {
return (current != null);
}
@Override
public E next() {
E e = current.element;
current = current.next;
return e;
}
1.
@Override
public void remove() {
while (current.next()) {
if (current.last()) {
current.remove();
}
}
System.out.println("Implementation left as an exercise");
}
2.
@Override
public void remove() {
if (prev == null || curr == null) {
head = head.next;
} else {
prev.next = curr.next;
}
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.