  In this paper, we propose a depth-first search (DFS) algorithm for searching
maximum matchings in general graphs. Unlike blossom shrinking algorithms, which
store all possible alternative alternating paths in the super-vertices shrunk
from blossoms, the newly proposed algorithm does not involve blossom shrinking.
The basic idea is to deflect the alternating path when facing blossoms. The
algorithm maintains detour information in an auxiliary stack to minimize the
redundant data structures. A benefit of our technique is to avoid spending time
on shrinking and expanding blossoms. This DFS algorithm can determine a maximum
matching of a general graph with $m$ edges and $n$ vertices in $O(mn)$ time
with space complexity $O(n)$.
