We give an algorithmic approach for transforming any spanning tree of a 2-connected graph into any other spanning tree of the graph. At each step of the transformation we obtain a spanning tree whose diameter differs from that of the previous tree by at most one. Thus if a 2-connected graph

has

as the minimum and

as the maximum diameter of a spanning tree, then for any integer

between

and

, graph

has a spanning tree of diameter

.