All right, so
consider the moment in time in which some component A merges with some component B.
Each of these two components currently has their own respective leader vertex, and
all vertices from that group are pointing to that leader vertex.
Now when they fuse, what are you going to do?
The first obvious thing to do is say,
well let's not bother computing some totally new leader.
Let's either re-use the leader from group A or the leader from group B.
That way it, for example, we retain the leader from group A, the only leader
pointers that need to be rewired are the ones that come from component B.
The vertices in component A can keep their same leader vertex and
their same leader pointers as before.
So that's the first point.
Let's just have a new union of two components inherit the leader of one
of the constituent parts.
Now, if you're going to retain one of the two leaders,
which one are you going to retain?
Maybe one the components is 1,000 vertices.
The other component only has 100 vertices.
Well given the choice you're certainly going to keep the leader from the bigger,
from the first component.
That way you only have to rewire the 100 leader pointers of the second group.
Right if you kept the leader of the second group you'd have to rewire the 1,000
pointers from the first group and that seems silly and wasteful.
So the obvious way to implement a merge is you just keep the leader of the bigger
group, and rewire everybody from the second group, the smaller group.