  We propose a simple and natural approximation algorithm for the problem of
finding a 2-edge-connected spanning subgraph of minimum total edge cost in a
graph. The algorithm maintains a spanning forest starting with an empty edge
set. In each iteration, a new edge incident to a leaf is selected in a natural
greedy manner and added to the forest. If this produces a cycle, this cycle is
contracted. This growing phase ends when the graph has been contracted into a
single node and a subsequent cleanup step removes redundant edges in reverse
order.
  We analyze the algorithm using the primal-dual method showing that its
solution value is at most 3 times the optimum. Although this only matches the
ratio of existing primal-dual algorithms, we require only a single growing
phase, thereby addressing a question by Williamson. Also, we consider our
algorithm to be not only conceptually simpler than the known approximation
algorithms but also easier to implement in its entirety. For n and m being the
number of nodes and edges, respectively, it runs in O(min{nm, m + n^2 log n})
time and O(m) space without data structures more sophisticated than binary
heaps and graphs, and without graph algorithms beyond depth-first search.
