  We show that every connected graph can be approximated by a normal tree, up
to some arbitrarily small error phrased in terms of neighbourhoods around its
ends. The existence of such approximate normal trees has consequences of both
combinatorial and topological nature.
  On the combinatorial side, we show that a graph has a normal spanning tree as
soon as it has normal spanning trees locally at each end; i.e., the only
obstruction for a graph to having a normal spanning tree is an end for which
none of its neighbourhoods has a normal spanning tree.
  On the topological side, we show that the end space $\Omega(G)$, as well as
the spaces $|G| = G \cup \Omega(G)$ naturally associated with a graph $G$, are
always paracompact. This gives unified and short proofs for a number of results
by Diestel, Spr\"ussel and Polat, and answers an open question about
metrizability of end spaces by Polat.
