<prompt> Unapewa orodha iliyounganishwa mara mbili, ambayo ina nodi zilizo na kielekezi kinachofuata, kielekezi kilichotangulia, na kielekezi cha mtoto cha ziada. Kielekezi hiki cha mtoto kinaweza au kisielekeze kwenye orodha tofauti iliyounganishwa mara mbili, pia iliyo na nodi hizi maalum. Orodha hizi za watoto zinaweza kuwa na mtoto wao mmoja au zaidi, na kadhalika, ili kutoa muundo wa data wa viwango vingi kama inavyoonyeshwa katika mfano ulio hapa chini.Kwa kuzingatia kichwa cha kiwango cha kwanza cha orodha, sawazisha orodha ili nodi zote zionekane katika orodha ya kiwango kimoja, iliyounganishwa mara mbili. Acha curr iwe nodi yenye orodha ya watoto. Nodi katika orodha ya watoto zinapaswa kuonekana baada ya curr na kabla curr.next katika orodha bapa.Rudisha _kichwa _cha orodha bapa. Nodi katika orodha lazima ziwe na vyote vya viashiria vyao vya mtoto vimewekwa kuwa_ batili.Mfano wa 1:Ingizo: kichwa 1,2,3,4,5,6,null,null,null,7,8,9,10,null,null,11,12Pato: 1,2,3,7,8,11,12,9,10,4,5,6Maelezo: Orodha iliyounganishwa ya ngazi nyingi katika ingizo imeonyeshwa.Baada ya kusawazisha orodha iliyounganishwa ya viwango vingi inakuwa: Mfano wa 2:Ingizo: kichwa 1,2,null,3Pato: 1,3,2Maelezo: Orodha iliyounganishwa ya ngazi nyingi katika ingizo imeonyeshwa.Baada ya kusawazisha orodha iliyounganishwa ya viwango vingi inakuwa: Mfano wa 3:Ingizo: kichwa Pato: Maelezo: Kunaweza kuwa na orodha tupu katika ingizo.Vikwazo: Idadi ya Nodi haitazidi 1000. 1 Node.val 105Jinsi orodha iliyounganishwa ya viwango vingi inavyowakilishwa katika visa vya majaribio:Tunatumia orodha iliyounganishwa ya viwango vingi kutoka Mfano wa 1 hapo juu: 1---2---3---4---5---6--NULL 7---8---9---10--NULL 11--12--NULLMsururu wa kila ngazi ni kama ifuatavyo:1,2,3,4,5,6,null7,8,9,10,null11,12,nullIli kusawazisha viwango vyote pamoja, tutaongeza nulls katika kila ngazi ili kuashiria hakuna nodi inayounganishwa kwenye nodi ya juu ya kiwango cha awali. Msururu unakuwa:1, 2, 3, 4, 5, 6, null null, null, 7, 8, 9, 10, null null, 11, 12, nullKuunganisha usanifu wa kila ngazi na kuondoa null zifuatazo tunapata:1,2,3,4,5,6,null,null,7,8,9,10,null,null,11,12  <response>: chatunodi ya darasa: def __init__binafsi, val, prev, ijayo, mtoto: self.val val self.prev prev self.next ijayo binafsi.mtoto mtotodef flattenkichwa: Nodi - Nodi: kama sio kichwa: kurudi Hakuna cur, prev, next_nodi kichwa, Hakuna, Hakuna huku cur: next_nodi cur.next ikiwa cur.mtoto: cur.next flattencur.child cur.child.prev cur cur.child Hakuna ikiwa nodi_ifuatayo: prev cur huku cur.ijayo: cur cur.next prev prev.next cur.next next_nodi next_node.prev iliyotangulia cur next_nodi kurudi kichwamaelezoAlgorithm inaanza kwa kuangalia ikiwa nodi ya kichwa ni batili. Ikiwa ni, rudisha null. Kisha, unda viashiria cur nodi ya sasa, prev nodi iliyotangulia, na inayofuata nodi inayofuata.Pitia orodha iliyounganishwa mara mbili kwa kutumia kitanzi cha wakati. Katika kila marudio, toa nodi inayofuata kwa kielekezi kinachofuata. Wakati kielekezi cha mtoto cha nodi ya sasa sio batili, inaonyesha kuwepo kwa orodha ndogo. Katika hali kama hizi, sasisha kielekezi kinachofuata cha nodi ya sasa kwa kuita kitendakazi bapa kwa kujirudia kwenye nodi ya mtoto, kwa kufaulu kusawazisha orodha ndogo. Pia, weka pointer ya awali ya mtoto kwenye nodi ya sasa, na weka pointer ya mtoto ya nodi ya sasa ili kubatilisha.Sasa, angalia ikiwa kielekezi kinachofuata hakijabatilishwa. Iwapo ni hivyo, pitia orodha bapa hadi mwisho wake. Mara moja mwishoni, sasisha pointer inayofuata kwa nodi ya asili inayofuata na uweke pointer ya awali ya nodi inayofuata ipasavyo. Hatimaye, sogeza pointer ya sasa kwenye nodi inayofuata.Mwishoni mwa upitishaji, rudisha kichwa cha orodha bapa iliyounganishwa yenye viwango vingi maradufu. 