This commit is contained in:
@@ -13,14 +13,14 @@ def process_node(node, available_edges, visited):
|
|||||||
for n in neighbors:
|
for n in neighbors:
|
||||||
if n not in visited:
|
if n not in visited:
|
||||||
nxt = process_node(n, available_edges, visited)
|
nxt = process_node(n, available_edges, visited)
|
||||||
paths = [[node] + p for p in nxt]
|
paths += [[node] + p for p in nxt]
|
||||||
if node in visited:
|
if node in visited:
|
||||||
visited.remove(node)
|
visited.remove(node)
|
||||||
return paths
|
return paths
|
||||||
|
|
||||||
|
|
||||||
def process_node_twice(node, available_edges, visited, visited_twice):
|
def process_node_twice(node, available_edges, visited, visited_twice):
|
||||||
paths = []
|
paths = deque()
|
||||||
if node == "end":
|
if node == "end":
|
||||||
paths.append([node])
|
paths.append([node])
|
||||||
return paths
|
return paths
|
||||||
@@ -35,7 +35,7 @@ def process_node_twice(node, available_edges, visited, visited_twice):
|
|||||||
for n in neighbors:
|
for n in neighbors:
|
||||||
if n not in visited or visited_twice != node and n != "start":
|
if n not in visited or visited_twice != node and n != "start":
|
||||||
nxt = process_node_twice(n, available_edges, visited, visited_twice)
|
nxt = process_node_twice(n, available_edges, visited, visited_twice)
|
||||||
paths = [[node] + p for p in nxt]
|
paths += [[node] + p for p in nxt]
|
||||||
if visited_twice == node:
|
if visited_twice == node:
|
||||||
visited_twice = None
|
visited_twice = None
|
||||||
elif node in visited:
|
elif node in visited:
|
||||||
|
|||||||
Reference in New Issue
Block a user