remove()

in src/contexts/Stream/CircularLinkedList.js [98:118]


  remove(data) {
    const nodeToRemove = this.get(data);

    if (!nodeToRemove) return;

    if (this.compare(nodeToRemove.next, nodeToRemove)) {
      this.head = undefined;
    } else {
      nodeToRemove.next.prev = nodeToRemove.prev;
      nodeToRemove.prev.next = nodeToRemove.next;
    }

    if (this.compare(this.head, nodeToRemove)) {
      this.head = nodeToRemove.next;
    }

    nodeToRemove.next = nodeToRemove.prev = null;
    this.size--;

    return nodeToRemove.data;
  }