133. Clone Graph

第一步加到map里面value是null只是為了去重,下一次遇到就不會進(jìn)queue

/**
 * Definition for undirected graph.
 * class UndirectedGraphNode {
 *     int label;
 *     List<UndirectedGraphNode> neighbors;
 *     UndirectedGraphNode(int x) { label = x; neighbors = new ArrayList<UndirectedGraphNode>(); }
 * };
 */
public class Solution {
    public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) {
        if (node == null){
            return null;
        }        
        Queue<UndirectedGraphNode> queue = new LinkedList<>();
        Map<UndirectedGraphNode, UndirectedGraphNode> visited = new HashMap<>();
        queue.offer(node);
        visited.put(node, null);
        while (!queue.isEmpty()){
            UndirectedGraphNode curt = queue.poll();
            UndirectedGraphNode copy = new UndirectedGraphNode(curt.label);
            visited.put(curt, copy);
            for (UndirectedGraphNode nei : curt.neighbors){
                if (!visited.containsKey(nei)){
                    queue.offer(nei);
                    visited.put(nei, null);
                }
            }
        }
        for (UndirectedGraphNode orig : visited.keySet()){
            UndirectedGraphNode copy = visited.get(orig);
            for (UndirectedGraphNode nei : orig.neighbors){
                copy.neighbors.add(visited.get(nei));
            }
        }
        return visited.get(node);
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗。 張土汪:刷leetcod...
    土汪閱讀 12,923評論 0 33
  • 原題 克隆一張無向圖,圖中的每個節(jié)點包含一個 label 和一個表 neighbors。你的程序需要返回一個經(jīng)過深...
    Jason_Yuan閱讀 1,723評論 0 0
  • Clone an undirected graph. Each node in the graph contain...
    matrxyz閱讀 257評論 0 0
  • 題意:克隆一個無向圖。 思路:因為是克隆所以需要一個map來存儲克隆的映射關(guān)系,我們可以從給定的第一個節(jié)點向它的n...
    ShutLove閱讀 242評論 0 0
  • 橙思:我的學(xué)習(xí)目標(biāo)是時間管理,提高專注度和效率。階段性目標(biāo)沒有達(dá)到:打卡晚了一周開始,輸出質(zhì)量有待提高,缺乏有效輸...
    nico小花閱讀 144評論 0 0

友情鏈接更多精彩內(nèi)容