code: public void connect(
        DiGraphNode<N, E> src,
        E edgeValue,
        DiGraphNode<N, E> dest) {
      LinkedDirectedGraphEdge<N, E> edge =
          useEdgeAnnotations
          ? new AnnotatedLinkedDirectedGraphEdge<>(src, edgeValue, dest)
          : new LinkedDirectedGraphEdge<>(src, edgeValue, dest);
      src.getOutEdges().add(edge);
      dest.getInEdges().add(edge);
    }
docs: DiGraphNode look ups can be expensive for a large graph operation, prefer this
  method if you have the DiGraphNode available.