参考GPT和自己的思路:
根据题目描述,可以使用深度优先搜索(DFS)来解决这个问题。将选修课程看作一个有向图,每个课程是一个节点,每门前置课程有一条有向边指向它。先建立一个邻接表来记录每门课程的前置课程。然后从每个没有前置课程的节点开始进行深度优先搜索,在搜索过程中标记已经访问过的节点,当访问到的节点已经被标记过,则返回false;否则继续深搜它的后继节点,最后若所有课程都被访问过,则返回true,否则返回false。