如图:当find操作第一次查询L的根结点时,需要找L的父结点-》E,E找E的父结点-》B,B找B的父结点A,A是根结点,返回根结点。
但是问题来了,当进行压缩路径时,为什么L和他的父节点都直接连接在根节点呢?而不是连接在其他的节点上呢?
然后我就差了一些资料,发现并查集进行路径压缩的时候是没有特定的规则的。
可以是上图的结构,也可以是两层(一层根结点和一群叶子结点的结构),还可以是,所有查询时候的结点都连接在自己的爷爷结点上。所以说规则并不唯一。
而咸鱼学长讲的就是 查询某个点时 ,直接把该结点连接到根结点。其他的结点不需要改变的情况。