幅優先探索のLeetcode(BFS)テーマ別-133。図クローン(クローングラフ)

幅優先探索のLeetcode(BFS)テーマ別-133。図クローン(クローングラフ)

BFS詳細なエントリ:幅優先探索(BFS)テーマ別-429トラバーサル順序N-ツリー(N進ツリー上位のオーダートラバーサルのLeetcode )。


無向与えられた通信ノードの参考図、図返し深いコピー(クローン)。グラフの各ノードは、その値が含まれている  valInt)、及びその近隣のリストを(list[Node])。

例:

入力:
{ "$ ID": "1" 、 "近隣":[{ "$ ID": "2"、 "近隣":[{ "$ REF"}、{ "$ ID"" 1 ":" 3 ""近隣":[ {" $ refを":" 2 "}、{" $番号":" 4 ""近隣":[{" $ refを":" 3 "}、{" $ refを" : "1"}]、 "ヴァル":4}]、 "ヴァル":3}]、 "ヴァル":2}、{ "$ refを": "4"}]、 "ヴァル":1} 

説明:
ノード2および4:ノード1が1の値であり、これは、2つのネイバーを有しています。
ノード1および3:ノード2の値は2であり、これは、2つのネイバーを有しています。
ノード2と4:3のノード3の値であり、これは、2つのネイバーを有しています。
ノード1及び3:4は、ノード4の値であり、これは、2つのネイバーを有しています。

 

ヒント:

  1. 1と100の間のノード。
  2. 無向グラフである単純なグラフないループが存在しないので、重複する図側が存在しないことを意味します。
  3. グラフは無向であるとしてノード場合、  pは  ノードである  q個の  隣接ノード  Qは  、ノードのなければならない  Pの  ネイバー。
  4. コピーされたノードは、リターンクローン図への参照として与えられなければなりません。

 

グラフを考えると、このグラフのコピーは、コピーを返します。

次のようにアイデアは以下のとおりです。

1、新マップ、古いノードを格納するためのキー、値のための新しいストレージノード

2、ノードがキューに参加し始め、BFSに始まりました

3、BFS

  • ノードの一時を外し、nはすべての彼の隣人をトラバース
  • 隣人がnコピーされているかどうかを確認するために、マップをチェック
  • nは近隣のコピーではない場合、コピーは、追加キューノードbを終えました
  • 一時隣接リストリスト外、リストの隣人の成功をコピーする上記の工程の追加
  • 第三のステップに戻り、キューが空にバウンスです
/ * 
//ノードの定義。
クラスノード{ 
    公共のint valの; 
    公共の一覧<ノード>隣人。

    パブリック・ノード(){} 

    パブリック・ノード(INT _val、リストの<node> _neighbors){ 
        ヴァル= _val。
        隣人= _neighbors。
    } 
}。
* / 
クラスソリューション{
     パブリックノードcloneGraph(ノードノード){
         場合(ノード== NULL戻りノード。
        キュー <ノード>キュー= 新しい LinkedListは<> (); 
        地図 <ノード、ノード>マップ= 新しいのHashMap <> =();
        ノードANS新しいノード(node.val、新しいのArrayList <> ()); 
        map.put(ノード、ANS)。
        
        queue.offer(ノード)。
        一方、(!queue.isEmpty()){ 
            ノードTEMP = queue.poll()。
            (ノードNB:temp.neighbors){
                 場合(!map.containsKey(NB)){ 
                    map.put(NB、新しいノード(nb.val、新しいのArrayList <> ())); 
                    queue.offer(NB)。
                } 
                map.get(TEMP).neighbors.add(map.get(NB))。
            } 
        } 
        
        戻りANS。
    } 
}

 

おすすめ

転載: www.cnblogs.com/qinyuguan/p/11441492.html