File tree Expand file tree Collapse file tree 1 file changed +31
-0
lines changed
src/main/kotlin/g0101_0200/s0133_clone_graph Expand file tree Collapse file tree 1 file changed +31
-0
lines changed Original file line number Diff line number Diff line change 1+ package g0101_0200.s0133_clone_graph
2+
3+ // #Medium #Hash_Table #Depth_First_Search #Breadth_First_Search #Graph #Udemy_Graph
4+ // #Top_Interview_150_Graph_General #2025_08_03_Time_133_ms_(88.96%)_Space_43.11_MB_(67.94%)
5+
6+ import com_github_leetcode.Node
7+
8+ class Solution {
9+ fun cloneGraph (node : Node ? ): Node ? {
10+ return cloneGraph(node, HashMap ())
11+ }
12+
13+ private fun cloneGraph (node : Node ? , processedNodes : MutableMap <Node ?, Node ?>): Node ? {
14+ if (node == null ) {
15+ return null
16+ } else if (processedNodes[node] != null ) {
17+ return processedNodes[node]
18+ }
19+ val newNode = Node (0 )
20+ processedNodes.put(node, newNode)
21+ newNode.`val ` = node.`val `
22+ newNode.neighbors = ArrayList ()
23+ for (neighbor in node.neighbors) {
24+ val clonedNeighbor = cloneGraph(neighbor, processedNodes)
25+ if (clonedNeighbor != null ) {
26+ (newNode.neighbors as ArrayList ).add(clonedNeighbor)
27+ }
28+ }
29+ return newNode
30+ }
31+ }
You can’t perform that action at this time.
0 commit comments