Skip to content

Commit 712c35e

Browse files
committed
Removed nested function and fixed class parameter types
1 parent 0d1134d commit 712c35e

File tree

1 file changed

+11
-13
lines changed

1 file changed

+11
-13
lines changed

graphs/deep_clone_graph.py

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212

1313

1414
class Node:
15-
def __init__(self, value=0, neighbors=None):
15+
def __init__(self, value: int = 0, neighbors: list | None = None) -> None:
1616
self.value = value
17-
self.neighbors = neighbors if neighbors is not None else []
17+
self.neighbors = neighbors or []
1818

1919

2020
def clone_graph(node: Node | None) -> Node | None:
@@ -32,20 +32,18 @@ def clone_graph(node: Node | None) -> Node | None:
3232

3333
originals_to_clones = {} # map nodes to clones
3434

35-
def create_clones(node: Node) -> None:
36-
"""
37-
This helper function populates the originals_to_clones map with
38-
the original nodes in the graph mapped to newly created clones.
39-
"""
40-
if node in originals_to_clones:
41-
return
35+
stack = [node]
4236

43-
originals_to_clones[node] = Node(node.value)
37+
while stack:
38+
original = stack.pop()
4439

45-
for neighbor in node.neighbors:
46-
create_clones(neighbor)
40+
if original in originals_to_clones:
41+
continue
4742

48-
create_clones(node)
43+
originals_to_clones[original] = Node(original.value)
44+
45+
for neighbor in original.neighbors:
46+
stack.append(neighbor)
4947

5048
for original, clone in originals_to_clones.items():
5149
for neighbor in original.neighbors:

0 commit comments

Comments
 (0)