Skip to content

Commit 9db6994

Browse files
committed
Improved complexity for cleanup
1 parent a042a13 commit 9db6994

1 file changed

Lines changed: 12 additions & 5 deletions

File tree

bafna.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,18 @@
22

33

44
def cleanup(G):
5-
while True:
6-
to_remove = [node for node in G.nodes if G.degree(node) <= 1]
7-
if len(to_remove) == 0:
8-
break
9-
G.remove_nodes_from(to_remove)
5+
queue = [n for n in G.nodes if G.degree(n) <= 1]
6+
7+
while len(queue) > 0:
8+
node = queue.pop()
9+
if not G.has_node(node):
10+
continue
11+
12+
neighbors = list(G.neighbors(node))
13+
G.remove_node(node)
14+
for neighbor in neighbors:
15+
if G.degree(neighbor) <= 1:
16+
queue.append(neighbor)
1017

1118
return G
1219

0 commit comments

Comments
 (0)