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

    if (this.first) {
      let currentNode = this.first;
      while (currentNode && currentNode.next) {
        currentNode = currentNode.next;
      }
      currentNode.next = node;
    } else {
      this.first = node;
    }
  }
Adds element to the end of the list (tail). Similar to Array.push
Runtime: O(n)
@param {any} value