def get_midpoint_outgroup(self):
<EOL>root = self.get_tree_root()<EOL>nA, r2A_dist = root.get_farthest_leaf()<EOL>nB, A2B_dist = nA.get_farthest_node()<EOL>outgroup = nA<EOL>middist = A2B_dist / <NUM_LIT><EOL>cdist = <NUM_LIT:0><EOL>current = nA<EOL>while current is not None:<EOL><INDENT>cdist += current.dist<EOL>if cdist > (middist): <EOL><INDENT>break<EOL><DEDENT>else:<EOL><INDENT>current = current.up<EOL><DEDENT><DEDENT>return current<EOL>
Returns the node that divides the current tree into two 
distance-balanced partitions.