此题想法较简单,一看就是从0开始依次往下遍历,自然想到dfs和bfs。正好拿来练手。附代码
dfs:
class Solution:
def canVisitAllRooms(self, rooms):
"""
:type rooms: List[List[int]]
:rtype: bool
"""
visited = set()
visited.add(0)
def dfs(rooms,loc,visited):
for i in rooms[loc]:
if i not in visited:
visited.add(i)
dfs(rooms,i,visited)
dfs(rooms,0,visited)
if len(visited) == len(rooms):
return True
else:
return False
bfs:
class Solution:
def canVisitAllRooms(self, rooms):
"""
:type rooms: List[List[int]]
:rtype: bool
"""
procession = [0]
visited = set()
while len(procession)>0:
value = procession.pop(0)
visited.add(value)
for i in rooms[value]:
if i not in visited:
procession.append(i)
if len(visited) == len(rooms):
return True
else:
return False