网站建设与管理答案,湖北网络营销推广怎么做,集团网,嵌入式软件开发外包给你无向 连通 图中一个节点的引用#xff0c;请你返回该图的 深拷贝#xff08;克隆#xff09;。
图中的每个节点都包含它的值 val#xff08;int#xff09; 和其邻居的列表#xff08;list[Node]#xff09;。
class Node { public int val; public List neighbor…给你无向 连通 图中一个节点的引用请你返回该图的 深拷贝克隆。
图中的每个节点都包含它的值 valint 和其邻居的列表list[Node]。
class Node { public int val; public List neighbors; } 输入adjList [[2,4],[1,3],[2,4],[1,3]] 输出[[2,4],[1,3],[2,4],[1,3]] 解释 图中有 4 个节点。 节点 1 的值是 1它有两个邻居节点 2 和 4 。 节点 2 的值是 2它有两个邻居节点 1 和 3 。 节点 3 的值是 3它有两个邻居节点 2 和 4 。 节点 4 的值是 4它有两个邻居节点 1 和 3 。
class Solution {public Node cloneGraph(Node node) {if(nodenull) return node;QueueNodequeuenew LinkedList();MapInteger,Node mapnew HashMap();queue.add(node);Node headnew Node(node.val,new ArrayList());map.put(node.val,head);while (!queue.isEmpty()){Node curOqueue.poll();for(Node next:curO.neighbors){if(map.containsKey(next.val))//节点已经新建了{map.get(curO.val).neighbors.add(map.get(next.val));//直接加入邻居节点}else{Node nonenew Node(next.val,new ArrayList());//新建节点并且入队map.put(next.val,none);map.get(curO.val).neighbors.add(none);queue.add(next);}}}return head;}
}