<prompt> Kwa kuzingatia kichwa cha orodha iliyounganishwa iliyopangwa, _futa nodi zote zilizo na nambari zilizorudiwa, ukiacha nambari tofauti pekee kutoka kwa orodha asili_. Rudisha _orodha iliyounganishwa iliyopangwa pia_.Mfano wa 1:Ingizo: kichwa 1,2,3,3,4,4,5Pato: 1,2,5Mfano wa 2:Ingizo: kichwa 1,1,1,2,3Pato: 2,3Vikwazo: Idadi ya nodi katika orodha iko katika safu 0, 300. -100 Node.val 100 Orodha imehakikishwa kupangwa kwa mpangilio wa kupanda.  <response>: chatuOrodha ya darasa: def __init__binafsi, x: self.val x self.next Hakunadef deleteDuplicateskichwa: dummy OrodhaNodi0 dummy.next kichwa prev, curr dummy, kichwa huku curr: wakati curr.next na curr.val curr.next.val: curr curr.next ikiwa prev.next curr: prev prev.next kwingine: prev.next curr.next curr curr.next rudisha dummy.ijayomaelezoAlgorithm hutumia nodi ya dummy ili kurahisisha utunzaji wa nodi ya kichwa cha orodha iliyounganishwa. Tunatangaza viashiria viwili: prev na curr ambavyo ni viashiria vya nodi za awali na za sasa, mtawalia.Algorithm inarudia kupitia orodha na kielekezi cha sasa. Ikiwa thamani ya nodi ya sasa ni sawa na thamani ya nodi inayofuata, tunaendelea kusonga pointer ya sasa pamoja na maadili yanayorudiwa. Mara tu tunapofikia mwisho wa nakala, tunaangalia ikiwa kiashiria kinachofuata cha nodi ya hapo awali kinaelekeza kwenye nodi ya sasa. Ikiwa ndivyo, inamaanisha hakukuwa na nakala prev na curr zinafuatana, kwa hivyo tunasogeza kielekezi cha prev hadi kwenye nodi ya sasa. Vinginevyo, tunaweka prev.next kuwa curr.next ili kuruka nakala.Hatimaye, tunahamisha pointer ya sasa kwenye node inayofuata, na kurudia mchakato. Orodha itakayopatikana itaondoa nakala zote, na mabadiliko yataendelea kwani nodi ya dummy inatumiwa kurejelea kichwa cha orodha iliyorekebishwa. 