Return a Position!
- Explain how Position is different from the Node (inner) class.
Here is the implementation of addFirst
from an earlier exercise:
public void addFirst(T data) {
Node<T> node = new Node<>(data);
node.next = head;
head.prev = node;
head = node;
}
Exercise Update addFirst
to return the newly added node (position) which contains the given data value.
public Position<T> addFirst(T data) {
// TODO Implement Me!
return null;
}
Solution
public Position<T> addFirst(T data) {
Node<T> node = new Node<>(data);
node.next = head;
head.prev = node;
head = node;
return node;
}
Notice we can directly return a value of type Node
where a Position
is expected. This works because of "type substitution."