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."