//返回第i个顶点的终点 用于判断是否有相同的终点即形成回路
private static int getEnd(int[] ends,int i){
// if (ends[i] != 0){
// i = ends[i];
// }这里一定要注意用while循环不然后面的边连上了前面连上的边 最终节点只是该一小段的值
//但是用了while循环后就可以一直找到前面连起来的最终节点 比如先连 E F 在连 CD 再练DE 这时候其实CDEF的最终节点都是F
//如果没有用while 那么在连CE的时候会认为C的最终节点是 D 或者这里的E 其实 是F
while (ends[i] != 0 ){
i = ends[i];//意思就是只有i这个点有终点 那么i的终点就是终点的终点
}
return i;
}
获取一条边每个节点的最终节点值