P124. 课程安排

https://algocasts.io/episodes/rLmP3yWo

while (!q.isEmpty()) {
int v = q.poll();
++count;
for (int i: graph.get(v)) {
–inDegree[i];
if (inDegree[i] == 0) q.add(i);
}
}

请问一下, 在最后一步为什么只需要删除节点的入度 而不需要删除邻接表中的相邻节点呢

@stillaftermath

因为队列 q 中的节点不可能出现和前面重复的数字(课程编号是 0 到 n-1),也就是说 graph.get(v) 中的 v 每一次都是不一样的,每条邻接链表只被用到一次。因此不需要删除邻接表中的相邻节点。