图的拓扑排序 , 判断是否有环
step 1 : 构建元素的入度 (入度:有向图的某个顶点作为终点的次数和。 出度:起点)
step 2 : 找到入度为0的元素, 压入栈中
step 3 : 若栈不为空,将其pop,并找到与其相连接的元素,入度减1,若相连接元素此时入度为0,入栈
例题:课程表
class Solution {
public:
// 图的拓扑排序 , 判断是否有环
// step 1 : 构建元素的入度 (入度:有向图的某个顶点作为终点的次数和。 出度:起点)
// step 2 : 找到入度为0的元素, 压入栈中
// step 3 : 若栈不为空,将其pop,并找到与其相连接的元素,入度减1,若相连接元素此时入度为0,入栈
bool canFinish(int numCourses, vector<vector<int