Critical Connections in a Network LeetCode solution in Python
1class Solution:2def criticalConnections(3self, n: int, connections: List[List[int]]4) -> List[List[int]]:56dic = collections.defaultdict(list)7for c in connections:8u, v = c9dic[u].append(v)10dic[v].append(u)1112timer = 01314depth, lowest, parent, visited = (15[float("inf")] * n,16[float("inf")] * n,17[float("inf")] * n,18[False] * n,19)20res = []2122def find(u):2324nonlocal timer2526visited[u] = True27depth[u], lowest[u] = timer, timer28timer += 12930for v in dic[u]:3132if not visited[v]:33parent[v] = u34find(v)35if lowest[v] > depth[u]:36res.append([u, v])3738if parent[u] != v:39lowest[u] = min(lowest[u], lowest[v])4041find(0)42return res