1 クラスソリューション: 2 cloneGraph DEF(自ノード:' ノード') - > ' ノード' : 3 ならないノード: 4 リターンなし 5 キュー= [ノード] 6 dup_node = ノード(node.val、[]) 7 fakequeue = [dup_node] 8 訪問= [] 9 D = {} 10 D [node.val] = dup_node 11 ながらキュー: 12 ノード= queue.pop(0 ) 13 newnode = fakequeue.pop(0 ) 14の 場合 node.val に訪問: 15は、 引き続き 16 visited.append(node.val) 17の ための私にnode.neighbors: 18 ならないi.val D: 19 J = ノード(i.val、[]) 20 D [i.val] = J 21 他: 22 J = D [i.val] 23 newnode.neighbors.append(J) 24 queue.append(I) 25 fakequeue.append(J) 26 リターン dup_node
アルゴリズム的思考:BFS
参考:https://leetcode.com/problems/clone-graph/discuss/440722/Python-3-BFS