题解
思路
代码
class Solution:
### 0113 并查集(64 ms,15.2 MB)
def findRedundantConnection(self, edges: List[List[int]]) -> List[int]:
def find(index):
if parent[index] != index:
parent[index] = find(parent[index])
return parent[index]
def union(index1, index2):
parent[find(index1)] = find(index2)
parent = list(range(len(edges) + 1)) # 注意:节点从1到n,则需多加一!
# 遍历每一条边中的两个节点
for node1, node2 in edges:
# 若两个节点不连通,则当前边不会是环,合并节点
if find(node1) != find(node2):
union(node1, node2)
# 若两个节点连通,则当前边会构成环,返回此边
else:
return [node1, node2]
return []