insert()

in src/contexts/Stream/CircularLinkedList.js [67:90]


  insert(data, afterData) {
    const newNode = new Node(data);

    if (!this.size) {
      newNode.next = newNode.prev = newNode;
      this.head = newNode;
      this.size++;
      return newNode;
    }

    const afterNode = afterData ? this.get(afterData) : this.head.prev;

    if (!afterNode) return;

    newNode.next = afterNode.next;
    newNode.prev = afterNode;

    afterNode.next.prev = newNode;
    afterNode.next = newNode;

    this.size++;

    return newNode;
  }