From 8d00ddc74896523508a21f58bc9aaefffea074dd Mon Sep 17 00:00:00 2001 From: huangge1199 Date: Fri, 2 Jul 2021 14:03:56 +0800 Subject: [PATCH] =?UTF-8?q?LeetBook--=E9=98=9F=E5=88=97&=E6=A0=88--?= =?UTF-8?q?=E5=85=8B=E9=9A=86=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/leet/book/queueStack/CloneGraph.java | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/main/java/leet/book/queueStack/CloneGraph.java diff --git a/src/main/java/leet/book/queueStack/CloneGraph.java b/src/main/java/leet/book/queueStack/CloneGraph.java new file mode 100644 index 0000000..d23c24d --- /dev/null +++ b/src/main/java/leet/book/queueStack/CloneGraph.java @@ -0,0 +1,53 @@ +package leet.book.queueStack; + +import java.util.*; + +/** + * Created with IntelliJ IDEA. + * + * @author: 轩辕龙儿 + * @date: 2021/7/2 13:43 + * @Description: No Description + */ +public class CloneGraph { + class Node { + public int val; + public List neighbors; + + public Node() { + val = 0; + neighbors = new ArrayList(); + } + + public Node(int _val) { + val = _val; + neighbors = new ArrayList(); + } + + public Node(int _val, ArrayList _neighbors) { + val = _val; + neighbors = _neighbors; + } + } + + class Solution { + private HashMap use = new HashMap <> (); + public Node cloneGraph(Node node) { + if (node == null) { + return node; + } + + if (use.containsKey(node)) { + return use.get(node); + } + + Node cloneNode = new Node(node.val, new ArrayList()); + use.put(node, cloneNode); + + for (Node neighbor: node.neighbors) { + cloneNode.neighbors.add(cloneGraph(neighbor)); + } + return cloneNode; + } + } +}