LeetBook--队列&栈--克隆图
This commit is contained in:
parent
58d6986c75
commit
8d00ddc748
53
src/main/java/leet/book/queueStack/CloneGraph.java
Normal file
53
src/main/java/leet/book/queueStack/CloneGraph.java
Normal file
@ -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<Node> neighbors;
|
||||
|
||||
public Node() {
|
||||
val = 0;
|
||||
neighbors = new ArrayList<Node>();
|
||||
}
|
||||
|
||||
public Node(int _val) {
|
||||
val = _val;
|
||||
neighbors = new ArrayList<Node>();
|
||||
}
|
||||
|
||||
public Node(int _val, ArrayList<Node> _neighbors) {
|
||||
val = _val;
|
||||
neighbors = _neighbors;
|
||||
}
|
||||
}
|
||||
|
||||
class Solution {
|
||||
private HashMap<Node, Node> 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;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user