Prove a graph is cyclic

Here's something simple we can deduce from the extra hypothesis: because every connected component has an even number of vertices, there can be no vertices of degree $0$. This leads to a version of your argument that skips the "connect all the components" step.

That is, suppose by way of contradiction that $G$ is a union of $k$ trees. It's known that a forest with $2n$ total vertices and $k$ components has $2n - k$ edges. Therefore by Handshake we have $$\sum \deg(v_i) = 2|E| = 4n - 2k.$$

Now, $n$ vertices have degree at least 3, and $n$ vertices have degree 1 or 2. Therefore $$\sum \deg(v_i) \ge 3n + n = 4n.$$

Putting this together, we get $$4n \le 4n - 2k \implies k \le 0,$$ a contradiction.

Remark: I don't see anything wrong with your argument, so maybe the inclusion of the hypothesis is just to make life a bit easier?


It seems even a little simpler than that, once we can show:

Lemma: Any tree has more leaf nodes than degree-3 and higher nodes.
Proof: Let a graph $G$ be a tree on $n$ vertices with $\ell$ leaf nodes and $h$ vertices of degree $3$ or more. Then $G$ has $n{-}1$ edges and by handshaking we know:
$2(n-1) = \sum d(v_i) \; \geq \; \ell + 2(n-\ell-h) + 3h = 2n-\ell+h,\quad$ so $\ell-2\geq h$ as required.

So the fact that half the nodes are degree $3$ or more shows that not all components are trees; i.e. that $G$ contains cycles. We could join components into a tree but it isn't really needed.

(thanks to jlammy for a compact statement of the lemma proof)