LeetCode 685. Redundant Connection II
好久没做Leetcode了,今天突发奇想,看到了一道综合性比较强的题目,花了一点时间自己做出来了,厉害!基本Leetcode题解我都是不会写的,直接在代码里有注释或方法及链接。具体可看题解
这道题目很好的考查了树的性质和图的基本知识,以及运用这些性质结合DFS和并查集解决问题的能力。
一棵树可以看做有向图,n个节点有n-1条边,增加1条边后只有两种情况:
- 有一个节点有两个入度,其中一个必多余
- 如果没有形成环,那么去掉最后一个符合题意
- 如果此时有环,那么去掉在环中的那一条边即可。从该节点出发DFS即可
- 所有节点只有一个入度,那么增加的边肯定经过原根节点,必会有环,去掉任何一条边即可。利用并查集找到最后出现的那条边。
|
|