@@ -15,27 +15,23 @@ import Foundation
1515
1616class Solution {
1717 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)
2321 }
2422
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] {
2725 return existingNode
2826 }
2927
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
3330 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) )
3632 }
3733 }
38- return clonedNode
34+ return visited [ node . val ] !
3935 }
4036}
4137
0 commit comments