Graph Theory Spanning Trees and Diameter 
Show that for every connected graph G there is a spanning tree T of G such that diam(T) ≤ 2diam(G).

I am having trouble approaching this problem.
diam(T) means diameter of T, which is the longest distance between any two vertices in T.
 A: Such a tree can be constructed using a simple breadth-first search, the resulting bound is really in the analysis. For convenience we will construct the spanning tree as a rooted tree, but this is really just so we have a fixed vertex in the tree we can relate our distances to.
Pick any vertex $v$ of $G$ as a starting point, and construct a tree $T$ via breadth first search - i.e. we add all the neighbours of $v$ as its children in the tree, then rinse-repeat in the normal fashion. Clearly when we finish $T$ will be a spanning tree, as the $G$ is connected.
The trick here is to observe that for any leaf $u$ of $T$ is at most distance $diam(G)$ from $v$ in the tree $T$. Why is this so? The proper proof can be done by induction, but I'll give a sketch of it here. Anything at distance $1$ must be added as a child of $v$ - it is adjacent to $v$, so must be picked up in the first round of the search. The induction is then on the distance (in $G$) of the vertices. Any vertex $x$ at distance $k$ from $v$ must be adjacent to a vertex $y$ at distance $k-1$ from $v$, by the (implicit) inductive assumption, $y$ is also at distance $k-1$ from $v$ in the tree $T$. Consider then how $x$ is added to the tree - it can't be added as a child of some vertex of distance less than $k-1$ from $v$, this would contradict the fact that it is at distance $k$ from $v$. So either it is added as a child of $y$ in the $k-1^{th}$ round of the search, in which case it as at distance $k$ from $v$ in $T$, or it is added as a child of some other vertex $w$, but $w$ must also be at distance $k-1$ from $v$, otherwise $x$ would already have been added to $T$ by the time we got to looking at the unadded neighbours of $w$. Hence $x$ must be at distance $k$ from $v$ in $T$. In short, a breadth-first search tree preserves shortest distances to its root.
So we have a tree $T$ with a nominal root $v$ where every distance in the tree between $v$ and any other vertex is the same as the shortest distance in the graph. By the fact that the longest shortest path in $G$ is at most $diam(G)$ by definition, every vertex is at most distance $diam(G)$ from $v$ using only edges from $T$ as well.
Then we can pick a walk from any two vertices $a$ and $b$ in the tree as follows, go from $a$ to $v$, then $v$ to $b$. If the walks intersect, then there is some vertex $v'$ such that the walk $a \leadsto v' \leadsto b$ is a proper path, and obviously $d_{T}(a,v') \leq d_{T}(a,v)$ and $d_{T}(b,v') \leq d_{T}(b,v)$. If they don't intersect, then the walk $a \leadsto v \leadsto b$ is a path. Then we have 
$$[d_{T}(a,v')+d_{T}(b,v')] \leq [d_{T}(a,v)+d_{T}(b,v)] \leq [d_{G}(a,v) + d_{G}(b,v)] \leq  2\times diam(G)$$
If we want to consider weighted graphs, the same property holds, but the construction of the tree gets slightly - but not much - more complex. Wikipedia describes it adequately enough.
