题目描述
原题链接:105. 有向图的完全联通
代码实现
- import collections
- n, k = list(map(int, input().split()))
- adjacency = collections.defaultdict(list)
- for _ in range(k):
- head, tail = list(map(int, input().split()))
- adjacency[head].append(tail)
- visited_node = set()
- def bfs(root, adjacency):
- global visited_node
- deque = collections.deque()
- deque.append(root)
- # 每次从队列中取出一个节点,查看邻接表中邻接的节点加入其中,进行BFS
- while deque:
- node = deque.popleft()
- visited_node.add(node) # 遍历过该节点则记录,最后看N个节点是否能被遍历完
- for tail in adjacency[node]:
- deque.append(tail)
- del adjacency[node]
-
- return
- # 使用BFS从1开始遍历,如果所有节点可以被遍历完,则说明完全联通
- bfs(1, adjacency)
- if len(visited_node) == n:
- print(1)
- else:
- print(-1)
复制代码 参考文章:105.有向图的完全可达性
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |