title: the center of a tree with weighted edges
body: <p>i am trying to give a solution to my university assignement..given a connected tree T=(V,E). every edge e has a specific positive cost c..d(v,w) is the distance between node v and w..I'm asked to give the pseudocode of an algorithm that finds the center of such a tree(the node that minimizes the maximum distance to every other node)..</p>
  
  <p>My solution consists first of all in finding the first two taller branches of the tree..then the center will be in the taller branch in a distance of H/2 from the root(H is the difference between the heights of the two taller branches)..the pseudocode is:</p>
  
  <pre><code>Algorithm solution(Node root, int height, List path)
  root: the root of the tree
  height : the height measured for every branch. Initially height=0
  path : the path from the root to a leaf. Initially path={root}
  
  Result : the center of the tree
  
  if root==null than
      return "error message"
  endif
  
  /*a list that will contain an element &lt;h,path&gt; for every
    leaf of the tree. h is the distanze of the leaf from the root
    and path is the path*/
  List L = empty
  if isLeaf(root) than
      L = L union {&lt;height,path&gt;}
  endif
  
  foreach child c of root do
      solution(c,height+d(root,c),path UNION {c})
  endfor
  
  /*for every leaf in the tree I have stored in L an element containing 
  the distance from the root and the relative path. Now I'm going to pick
  the two most taller branches of the tree*/
  Array array = sort(L)
  &lt;h1,path1&gt; = array[0]//corresponding to the tallest branch
  &lt;h2,path2&gt; = array[1]//corresponding to the next tallest branch
  H = h1 - h2;
  
  /*The center will be the node c in path1 with d(root,c)=H/2. If such a 
  node does not exist we can choose the node with te distance from the root
  closer to H/2 */
  
  int accumulator = 0
  for each element a in path1 do
      if d(root,a)&gt;H/2 than
          return MIN([d(root,a)-H/2],[H/2-d(root,a.parent)])
      endif   
  end for
  </code></pre>
  
  <p>end Algorithm</p>
  
  <p>is this a correct solution??is there an alternative and more efficient one??
  Thank you...</p>