From 6522012065712fb0ece31bff9ff10b38a83b10e1 Mon Sep 17 00:00:00 2001 From: Michael Hunteman Date: Thu, 22 Sep 2022 10:14:04 -0500 Subject: Initial commit --- CloneGraph.java | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 CloneGraph.java (limited to 'CloneGraph.java') diff --git a/CloneGraph.java b/CloneGraph.java new file mode 100644 index 0000000..ada085c --- /dev/null +++ b/CloneGraph.java @@ -0,0 +1,39 @@ +import java.lang.*; +import java.util.*; +import node.*; + +class CloneGraph { + public static GraphNode cloneGraph(GraphNode node) { + Stack stack = new Stack(); + ArrayList visited = new ArrayList(); + stack.push(node); + GraphNode clone = new GraphNode(node.val, node.neighbors); + while (!stack.empty()) { + node = stack.pop(); + if (visited.contains(node)) + continue; + GraphNode curr = new GraphNode(node.val, node.neighbors); + visited.add(node); + System.out.println("Node: " + node.val); + System.out.print("Neighbors: "); + for (GraphNode neighbor : node.neighbors) { + stack.push(neighbor); + System.out.print(neighbor.val + " "); + } + System.out.println(); + } + return clone; + } + + public static void main(String[] args) { + GraphNode head = new GraphNode(1); + GraphNode first = new GraphNode(2); + GraphNode second = new GraphNode(3); + GraphNode third = new GraphNode(4, new ArrayList<>(Arrays.asList(first, second))); + second.neighbors = new ArrayList<>(Arrays.asList(head, third)); + first.neighbors = new ArrayList<>(Arrays.asList(head, second)); + head.neighbors = new ArrayList<>(Arrays.asList(first, second)); + + GraphNode curr = cloneGraph(head); + } +} -- cgit v1.2.3