Append Operation
- Trace the basic operations of a (singly) linked-list implementation.
 - Understand the basic operations of a (singly) linked list well enough to implement them.
 
Suppose we have the following linked list 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 t) {
  // TODO Implement me!
}
Hint: Use the following visualization as guidance.
Solution
public void addLast(T t) {
  Node<T> tail = head;
  while (tail.next != null) {
    tail = tail.next;
  }
  
  tail.next = new Node<T>(t);
}
If you count the number of nodes in the linked list, you can also write this with a counter-controlled loop. In that case, the find helper method from when we implemented get can be used here to go to the last element. 
Caution: the implementation above fails to account for an edge case!