File tree Expand file tree Collapse file tree 1 file changed +14
-7
lines changed Expand file tree Collapse file tree 1 file changed +14
-7
lines changed Original file line number Diff line number Diff line change 9
9
Each node in the graph contains a value (int) and a list (List[Node]) of its
10
10
neighbors.
11
11
"""
12
+ from dataclasses import dataclass
12
13
13
14
15
+ @dataclass
14
16
class Node :
15
- def __init__ (self , value : int = 0 , neighbors : list | None = None ) -> None :
16
- self .value = value
17
- self .neighbors = neighbors or []
17
+ value : int = 0
18
+ neighbors : list ["Node" ] | None = None
19
+
20
+ def __post_init__ (self ):
21
+ self .neighbors = self .neighbors or []
22
+
23
+ def __hash__ (self ):
24
+ return id (self )
18
25
19
26
20
27
def clone_graph (node : Node | None ) -> Node | None :
@@ -24,10 +31,10 @@ def clone_graph(node: Node | None) -> Node | None:
24
31
>>> node2 = Node(2)
25
32
>>> node3 = Node(3)
26
33
>>> node4 = Node(4)
27
- >>> node1.neighbors = [node2, node4]
28
- >>> node2.neighbors = [node1, node3]
29
- >>> node3.neighbors = [node2, node4]
30
- >>> node4.neighbors = [node1, node3]
34
+ >>> node1.neighbors.extend( [node2, node4])
35
+ >>> node2.neighbors.extend( [node1, node3])
36
+ >>> node3.neighbors.extend( [node2, node4])
37
+ >>> node4.neighbors.extend( [node1, node3])
31
38
>>> clone1 = clone_graph(node1)
32
39
>>> clone1.value
33
40
1
You can’t perform that action at this time.
0 commit comments