  Grotzsch's theorem states that every triangle-free planar graph is
3-colorable. Several relatively simple proofs of this fact were provided by
Thomassen and other authors. It is easy to convert these proofs into
quadratic-time algorithms to find a 3-coloring, but it is not clear how to find
such a coloring in linear time (Kowalik used a nontrivial data structure to
construct an O(n log n) algorithm).
  We design a linear-time algorithm to find a 3-coloring of a given
triangle-free planar graph. The algorithm avoids using any complex data
structures, which makes it easy to implement. As a by-product we give a yet
simpler proof of Grotzsch's theorem.
