Finding articulation vertices is an application of DFS.
In a nutshell,
- Apply DFS on a graph. Get the DFS tree.
- A node which is visited earlier is a “parent” of those nodes which are reached by it and visited later.
- If any child of a node does not have a path to any of the ancestors of its parent, it means that removing this node would make this child disjoint from the graph.
- There is an exception: the root of the tree. If it has more than one child, then it is an articulation point, otherwise not.
Point 3 essentially means that this node is an articulation point.
Now for a child, this path to the ancestors of the node would be through a back-edge from it or from any of its children.
All this is explained beautifully in this PDF.