Skip to content

Commit 6eb5e62

Browse files
committed
fix mistake usage of self param in recursive func and [] as default param
1 parent 8300928 commit 6eb5e62

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

‎graph_search.py‎

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ class GraphSearch:
1010
def__init__(self, graph):
1111
self.graph=graph
1212

13-
deffind_path(self, start, end, path=[]):
13+
deffind_path(self, start, end, path=None):
1414
self.start=start
1515
self.end=end
16-
self.path=path
16+
self.path=pathifpathelse []
1717

1818
self.path+= [self.start]
1919
ifself.start==self.end:
@@ -27,37 +27,37 @@ def find_path(self, start, end, path=[]):
2727
returnnewpath
2828
returnNone
2929

30-
deffind_all_path(self, start, end, path=[]):
30+
deffind_all_path(self, start, end, path=None):
3131
self.start=start
3232
self.end=end
33-
self.path=path
34-
self.path+= [self.start]
33+
_path=pathifpathelse []
34+
_path+= [self.start]
3535
ifself.start==self.end:
36-
return [self.path]
36+
return [_path]
3737
ifself.startnotinself.graph:
3838
return []
3939
paths= []
4040
fornodeinself.graph[self.start]:
41-
ifnodenotinself.path:
42-
newpaths=self.find_all_path(node, self.end, self.path)
41+
ifnodenotin_path:
42+
newpaths=self.find_all_path(node, self.end, _path[:])
4343
fornewpathinnewpaths:
4444
paths.append(newpath)
4545
returnpaths
4646

47-
deffind_shortest_path(self, start, end, path=[]):
47+
deffind_shortest_path(self, start, end, path=None):
4848
self.start=start
4949
self.end=end
50-
self.path=path
50+
_path=pathifpathelse []
5151

52-
self.path+= [self.start]
52+
_path+= [self.start]
5353
ifself.start==self.end:
54-
returnself.path
54+
return_path
5555
ifself.startnotinself.graph:
5656
returnNone
5757
shortest=None
5858
fornodeinself.graph[self.start]:
59-
ifnodenotinself.path:
60-
newpath=self.find_shortest_path(node, self.end, self.path)
59+
ifnodenotin_path:
60+
newpath=self.find_shortest_path(node, self.end, _path[:])
6161
ifnewpath:
6262
ifnotshortestorlen(newpath) <len(shortest):
6363
shortest=newpath
@@ -82,5 +82,5 @@ def find_shortest_path(self, start, end, path=[]):
8282

8383
### OUTPUT ###
8484
# ['A', 'B', 'C', 'D']
85-
# [['A', 'B', 'C', 'D']]
86-
# ['A', 'B', 'C', 'D']
85+
# [['A', 'B', 'C', 'D'], ['A', 'B', 'D'], ['A', 'C', 'D']]
86+
# ['A', 'B', 'D']

0 commit comments

Comments
(0)