@@ -15,27 +15,23 @@ import Foundation
15
15
16
16
class Solution {
17
17
func cloneGraph( _ node: Node ? ) -> Node ? {
18
- guard let unWrappedNode = node else { return node}
19
-
20
- var nodeDict = [ Int: Node] ( )
21
- let clonedNode = self . cloneGraphHelper ( unWrappedNode, & nodeDict)
22
- return clonedNode
18
+ guard let node = node else { return node}
19
+ var visited = [ Int: Node] ( )
20
+ return cloneGraphHelper ( node, & visited)
23
21
}
24
22
25
- func cloneGraphHelper( _ node: Node , _ nodeDict : inout [ Int : Node ] ) -> Node {
26
- if let existingNode = nodeDict [ node. val] {
23
+ func cloneGraphHelper( _ node: Node , _ visited : inout [ Int : Node ] ) -> Node {
24
+ if let existingNode = visited [ node. val] {
27
25
return existingNode
28
26
}
29
27
30
- var clonedNode = Node ( node. val)
31
- nodeDict [ node. val] = clonedNode
32
- node. neighbors. forEach { neighbor in
28
+ visited [ node. val] = Node ( node. val)
29
+ node. neighbors. forEach { neighbor in
33
30
if let unWrappedNeighbor = neighbor {
34
- let clonedNeighbour = self . cloneGraphHelper ( unWrappedNeighbor, & nodeDict)
35
- nodeDict [ node. val] ? . neighbors. append ( clonedNeighbour)
31
+ visited [ node. val] ? . neighbors. append ( self . cloneGraphHelper ( unWrappedNeighbor, & visited) )
36
32
}
37
33
}
38
- return clonedNode
34
+ return visited [ node . val ] !
39
35
}
40
36
}
41
37
0 commit comments