I want to show that every k-cube has a perfect matching for $ k \geqslant 1 $. (A k-cube is a graph whose vertices are labeled by k-tuples consisting of $ 0 $ and $1$ , and each two adjacent vertices are different in only one digit.)
According to Tutte's theorem, our graph has a perfect matching $\iff$ $$o(G-S) \leqslant \vert S \vert $$ for all $$S\subset V$$ where $o$ denotes the number of components with odd number of vertices, but the problem is that for arbitrary k the only way is to check all possible subsets $ S $ which is impractical and irrational. I don't think Tutte's theorem is efficient here.
A Matching $\mathcal{M}(V^{\prime}, E^{\prime})$ is a subgraph of $G$ such that for any two $e_{1}, e_{2} \in E^{\prime}$, $e_{1} \cap e_{2} = \emptyset$. That is, no two edges in the matching share a common vertex. A Perfect Matching uses all the vertices of $G$.
Remember that hypercubes are constructed as follows. Given $Q_{n}$, we create a second copy of $Q_{n}$. To the first copy, we append a $0$ to the strings for each vertex. To the second copy, we append a $1$ instead.
Consider $Q_{1}$, a single edge. This is trivially a perfect matching. Now consider $Q_{2}$, which is constructed from two instances of $Q_{1}$:
Think of the left edge as the first $Q_{1}$ and the right edge as the second $Q_{1}$. If we remove the top and bottom edges of $Q_{2}$, we are left with two disjoint copies of $Q_{1}$ and a perfect matching.
Now apply this reasoning inductively. Though I think Leen Droogendijk's construction is a much cleaner way than induction. He and I are really saying the same thing, and you can apply either proof technique.
Each vertex is a binary string, and is adjacent to vertices where the two strings differ in exactly one place. We can vary exactly one character in $n$ ways. So each vertex in $Q_{n}$ has degree $n$.