Не знаю, как точно сказать, но надо найти точки деления на графе. Т.е. такие узлы, которые делят граф на несвязанные подграфы. Вот пример графа, где хочется найти точкой деления узел, выделенный жирным: https://pasteboard.co/Hv23hxM.png (Граф рисовал примерный, реальные графы будут на сотни тысяч узлов)
Собственно, прошу подсказать - в какую сторону копать? Если подграфы представляют собой деревья, то я понимаю как быть (начинать с узлов и двигаться «вверх»). А тут мысль останавливается.
Добавлю, что решение достаточно найти «примерно». Т.е. достаточно будет найти не все «точки деления», а только некоторые, но за приемлемое время.