Skip to content

Commit 3837592

Browse files
committed
no message
1 parent 44a4412 commit 3837592

File tree

1 file changed

+9
-13
lines changed

1 file changed

+9
-13
lines changed

leetcode.com/swift/DS_ALGO_PRAC.playground/Sources/swift/133_Clone_Graph.swift

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,27 +15,23 @@ import Foundation
1515

1616
class 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

Comments
 (0)