Well, there is an easier approach.

For each point 1 to N, run DFS from another point and check if all points are reachable from that one point. The key is that in an undirected graph, if we can reach all points from one point, then we can reach *all *points from *all other* points.

So the problem becomes:

For each point *forbidden *from 1 to N:

Run DFS from any point (!= *forbidden*) and check if all nodes other than *forbidden *are reachable **without **going through *forbidden.*

If yes, then it is not a critical intersection.