<prompt> Kwa kuzingatia marejeleo ya nodi katika imeunganishwa grafu ambayo haijaelekezwa.Rejesha nakala ya kina clone ya grafu.Kila nodi kwenye grafu ina thamani int na orodha OrodhaNjia ya majirani zake.nodi ya darasa val ya int ya umma; umma Orodha majirani;Muundo wa kesi ya jaribio:Kwa unyenyekevu, thamani ya kila nodi ni sawa na faharasa ya nodi iliyoonyeshwa 1. Kwa mfano, nodi ya kwanza yenye val 1, nodi ya pili yenye val 2, na kadhalika. Grafu inawakilishwa katika kesi ya majaribio kwa kutumia orodha ya karibu.Orodha ya kukaribiana ni mkusanyiko wa orodha zisizo na mpangilio zinazotumiwa kuwakilisha grafu yenye kikomo. Kila orodha inaelezea seti ya majirani ya nodi kwenye grafu.Nodi iliyotolewa daima itakuwa nodi ya kwanza na val 1. Lazima urejeshe nakala ya nodi uliyopewa kama rejeleo la grafu iliyobuniwa.Mfano wa 1:Ingizo: adjList 2,4,1,3,2,4,1,3Pato: 2,4,1,3,2,4,1,3Maelezo: Kuna nodi 4 kwenye grafu.Nodi ya 1 val 1 majirani ni nodi ya 2 val 2 na nodi ya 4 val 4.Nodi ya 2 val 2 majirani ni nodi ya 1 val 1 na nodi ya 3 val 3.Nodi ya 3 val 3 majirani ni nodi ya 2 val 2 na nodi ya 4 val 4.Nodi ya 4 val 4 majirani ni nodi ya 1 val 1 na nodi ya 3 val 3.Mfano wa 2:Ingizo: adjList Pato: Maelezo: Kumbuka kuwa ingizo lina orodha moja tupu. Grafu ina nodi moja tu na val 1 na haina majirani yoyote.Mfano wa 3:Ingizo: adjList Pato: Maelezo: Hii ni grafu tupu, haina nodi zozote.Vikwazo: Idadi ya nodi katika grafu iko katika safu 0, 100. 1 Node.val 100 Node.val ni ya kipekee kwa kila nodi. Hakuna kingo zinazorudiwa na hakuna vitanzi vya kibinafsi kwenye grafu. Grafu imeunganishwa na nodi zote zinaweza kutembelewa kuanzia nodi iliyotolewa.  <response>: chatunodi ya darasa: def __init__binafsi, val0, jiraniHakuna: self.val val majirani majirani ikiwa majirani sio Hakuna mwingine def cloneGraphnodi, alitembeleaHakuna: ikiwa nodi ni Hakuna: kurudi Hakuna ikiwa imetembelewa hakuna: alitembelea ikiwa nodi imetembelewa: kurudi alitembeleanodi cloneNode Njia node.val alitembeleanodi cloneNode kwa jirani katika nodi.majirani: cloneNode.neighbors.appendcloneGraphjirani, alitembelea rudisha CloneNodemaelezoKanuni hutumia Utafutaji wa Kina wa Kwanza DFS ili kupitisha grafu na kufanya nakala ya kina ya nodi. Hapa kuna algorithm:1. Unda kamusi ya iliyotembelewa C: ramani_isiyopangwa, Java: HashMap, Python: dict, JavaScript: Map ili kufuatilia nodi zilizotembelewa na kuweka clones zao.2. Bainisha kitendakazi cha kisaidizi cha kujirudi cloneGraph ambacho huchukua nodi na kamusi iliyotembelewa kama ingizo.3. Ikiwa nodi ya ingizo ni null, rudisha null.4. Ikiwa nodi ya ingizo tayari iko kwenye kamusi iliyotembelewa, rudisha clone yake.5. Vinginevyo, unda nodi mpya ya clone yenye thamani sawa na nodi ya uingizaji, na uiongeze kwenye kamusi iliyotembelewa.6. Rudia kupitia majirani wa nodi ya ingizo, na uite kisaidizi cha cloneGraph kwa kujirudia kwa kila jirani, ukiongeza kloni zilizorejeshwa kwa majirani za nodi ya clone.7. Rudisha node ya clone.Hatimaye, piga kisaidizi cha cloneGraph ukitumia nodi uliyopewa na kamusi tupu iliyotembelewa mwanzoni. 