addLast(value) {
    const node = new Node(value);

    if (this.first) {
      const currentNode = this.first;
      this.last.next = node;
      this.last = node;
    } else {
      this.first = node;
      this.last = node;
    }
  }
Adds element to the end of the list (tail). Similar to Array.push
Using the element last reference instead of finding last, we can reduce the runtime from O(n) to O(1)
Runtime: O(1)
@param {any} value