I like it. it's better than mine in the sense that it is simple and gets the job done.
But it does not add the new info to the nodes (the ints that contain domain, bus, etc) in the tree that I think we ought to add. I also prefer the consolidation of lots of work into labeltree() that my patch does. Also, my patch does delete some code (although, sadly, I grow the size overall). Finally, if we really want to use the links[] support we can't do it with your patch.
So, your patch is better if we are trying to fix the uniquess problem only; my patch is better if we want to ever use links[].
Now what :-)
ron