DLL Operation: Append
Suppose we have the following DLL and we want to append (add to the end) a new node.

Exercise Complete the implementation of the addLast
method that creates a node and add it to the back of the list.
public void addLast(T data) {
// TODO Implement me!
}
Hint: Use the following visualization as guidance.

Solution
public void addLast(T data) {
Node<T> node = new Node<>(data);
node.prev = tail;
tail.next = node;
tail = node;
}
Caution: the implementation above fails to account for edge cases!