<prompt> Pendekeza algorithm ya kubadilisha orodha iliyounganishwa.  <response>: Algorithm ya kubadilisha orodha iliyounganishwa inahusisha kupanga upya viungo kati ya nodi ili zielekeze upande mwingine. Hapa kuna hatua za kubadilisha orodha iliyounganishwa: 1. Anzisha viashiria vitatu, vilivyotangulia kama NULL, curr kama kichwa cha orodha, na kinachofuata kama NULL. 2. Rudia kupitia orodha iliyounganishwa hadi curr iwe NULL. 3. Katika kila marudio: - Weka curr - next kwa pointer inayofuata ili tuweze kusonga mbele katika orodha iliyounganishwa. - Agiza prev kwa curr - next ili ibadilishe kiungo cha sasa. - Sogeza prev na curr hatua moja mbele, yaani prev curr na curr ijayo 4. Agiza prev kwa kichwa ili kichwa sasa kuelekeza kwa orodha kinyume. Hapa kuna msimbo kamili katika C: c void reversestruct Node head_ref struct Node prev NULL; struct Node sasa head_ref; struct Node inayofuata NULL; wakati sasa ! NULL next current- next; sasa- inayofuata iliyotangulia; prev sasa; sasa ijayo; kichwa_ref iliyopita; Kanuni hii inachukua uchangamano wa wakati wa On ambapo n ni idadi ya nodi katika orodha iliyounganishwa. Utata wa nafasi ni O1 kwani tunahitaji tu viashiria vitatu vya ziada kutekeleza ubadilishaji. 