This type of intermediate connectivity is often called semi-connectivity.
If you used this notion you would find out that your question already has a very comprehensive answer on stackoverflow: https://stackoverflow.com/questions/30642383/determine-if-a-graph-is-semi-connected-or-not
I will sketch it here simplified though.
Idea is to reduce problem by reducing digraph G to it's graph of SCC's, say G', that is always acyclic and then try to find a path that covers all nodes in G'. If there is no such path then it's not possible to get from some SCC to some other (G' is acyclic) and that means that vertices in them have no connections. Otherwise G' is semi-connected and so is G.
Input: digraph G = (V,E)
Output: true or false if it's semi-connected
init graph G'=(V',E') from SCC's of G where V' is set of SCC of G and E' are edges between them or $E'=\{(v_1',v_2') | v_1',v_2'\in V'$ and $\exists (v_1,v_2)\in E$, $v_1 \in v_1',v_2 \in v_2'$}
// G' guaranteed to be acyclic and this can be done in O(|V| + |E|), for example, using Kosaraju's algorithm
find topological ordering $T=(v_0,...,v_{|V'|})$ of G' // correct as G' is acyclic and also can be done in O(|V'| + |E'|) using modification of DFS.
if some possible pair $(v_i,v_{i+1})$ in T is not in E' ouput false, otherwise true // if not then $(v_{i+1},v_{i})$ also is not in E' and there is no connection between vertices in $v_i$ and $v_{i+1}$, takes O(|V'|)
Best Answer
See the following theorems of a lecture “Round Trips” of our blockcourse “Algorithmic Graph Theory” by Joachim Spoerhase and Alexander Wolff.
Theorem. Let $G = (V,E)$ be an undirected and connected graph.
(i) We can test in $O(E)$ time, if $G$ is Eulerian.
(ii) If $G$ is Eulerian, we can find in $O(E)$ time an Eulerian cycle.
A problem to find an Eulerian path can be reduced to a problem to find an Eulerian cycle as follows. If we have a graph $G$ for which exists an Eulerian path then $G$ has exactly two vertices of odd degree. Add an edge $e$ between these vertices, find an Eulerian cycle on $G+e$ and then remove $e$ from the cycle, obtaining an Eulerian path in $G$.
Theorem. Let $G = (V,E)$ be an directed and weakly connected graph.
(i) We can test in $O(E)$ time, if $G$ is Eulerian.
(ii) If $G$ is Eulerian, we can compute in $O(E)$ time an Eulerian cycle.
Theorem. [Karp, 1972] (Un)directed Hamiltonian cycle and path are NP-hard.