code: private void removeNode(Node<K, V> node) {
      if (node.previous != null) {
        node.previous.next = node.next;
      } else { // node was head
        head = node.next;
      }
      if (node.next != null) {
        node.next.previous = node.previous;
      } else { // node was tail
        tail = node.previous;
      }
      if (node.previousSibling == null && node.nextSibling == null) {
        KeyList<K, V> keyList = keyToKeyList.remove(node.key);
        keyList.count = 0;
        modCount++;
      } else {
        KeyList<K, V> keyList = keyToKeyList.get(node.key);
        keyList.count--;
  
        if (node.previousSibling == null) {
          keyList.head = node.nextSibling;
        } else {
          node.previousSibling.nextSibling = node.nextSibling;
        }
  
        if (node.nextSibling == null) {
          keyList.tail = node.previousSibling;
        } else {
          node.nextSibling.previousSibling = node.previousSibling;
        }
      }
      size--;
    }
docs: Removes the specified node from the linked list. This method is only intended to be used from
  the {@code Iterator} classes. See also {@link LinkedListMultimap#removeAllNodes(Object)}.