Given an acyclic undirected unweighted connected graph, find its representation as a tree with the least height. Brute force is O(n^2). Come up with an O(n) solution
-----------------------------------------------------------------------
start from an arbitrarily node, do
a bfs or dfs to find out the furtherest node, denote it as node a. O(n)
start from node a, do a bfs or dfs again to find out the furtherest node from node a, get the length len. O(n)
then the least height of the tree is interget part of (len+1)/2, and the root node is node b which is (len+1)/2 from node a.
total time complexity is O(2n)=O(n)
correct me if sth wrong