LeetCode 题解——Redundant Connection II
题意
给出一个有向图,求其有向的最小生成树(除了根节点之外所有的节点都有一条入边指向它),同时给出的有向图刚好只多出一条边
题解
前一道题是求只多出一条边的无向图的最小生成树,使用并查集很容易就能够求解。
这一道有向图的题就比较复杂一点了,有向图的最小生成树又叫最小树形图,常规算法是使用朱刘算法。这里因为只多出一条边,所以不用这么麻烦。
总共有三种情况:
- 有环,但是没有入度为2的节点
- 有环,同时有入度为2的节点
- 无环,有入度为2的节点
第一种情况,按照无向图的处理方式进行就行了,使用并查集返回最后一条形成环的边。
后面两种情况,首先要找到入度为2的节点,选出指向这个节点的两条边,处理完其他的边以后处理这两条边,使用并查集找出最后一个连接的两个节点已经在同一集合中的边
代码
1 | class Solution { |
更多LeetCode题解,欢迎查看我的GitHub项目