Use Tarjan's algorithm with the articulation point condition: a vertex is an articulation point if it is the root with children, or a non-root with a child where low[v] >= disc[u]. The difference from bridges: instead of .
A vertex is critical if its subtree cannot escape beyond it. Time complexity: , same as the bridge algorithm. You compute the same low-link values but check different conditions.