title: Choosing a root of a tree so that the tree height is minimum
body: <p>In an algorithmic problem that I'm trying to solve - I'm in a situation where I'm given a tree and I need to select a node as a root for which the tree height would be minimum.</p>
  
  <p>There are 200,000 nodes and 150,000 edges. Because of time constraint, I need a better algorithm than <code>O(n^2)</code>.</p>
  
  <p>What algorithm can I use?</p>