How do I tell if $G$ is a forest in log-space? How does to prove that language 
$$\textbf{X} = \{G \mid\text{ all connected connected components in $G$ are trees}\} \in \textbf{L}\,?$$ I know how to prove that language of undirected trees is in $\textbf{L}$ but I don't know what to do next.
Using Reingold's algorithm, you can count the number of connected components in a graph. For example, you can count the number of vertices which have the minimal index in their connected component (assuming some arbitrary ordering of the vertices), that is, the number of vertices $i$ that are not connected to any $j &lt; i$.

Now use the following criterion: A graph contains a cycle iff there is an edge whose removal does not increase the number of connected components.