LeetCode問(wèn)題圖解-5

本文準(zhǔn)備講解1個(gè)算法編程問(wèn)題, 這個(gè)算法編程問(wèn)題來(lái)自LeetCode平臺(tái)。不了解.LeetCode平臺(tái)的讀者可以閱讀筆者文章(在線編程平臺(tái)推薦-LeetCode)。問(wèn)題的英文版本描述如下:

Flatten Nested List Iterator

Given a nested list of integers, implement an iterator to flatten it.

Each element is either an integer, or a list -- whose elements may also be integers or other lists.

Example 1:

Given the list[[1,1],2,[1,1]],

By calling?next?repeatedly until?hasNext?returns false, the order of elements returned by?next?should be:[1,1,2,1,1].

Example 2:

Given the list[1,[4,[6]]],

By calling?next?repeatedly until?has Next?returns false, the order of elements returned by?next?should be:[1,4,6].

問(wèn)題的中文版本描述:

處理鏈表

給定一個(gè)列表,該列表中的每個(gè)元素要么是個(gè)列表,要么是整數(shù)。將其變成一個(gè)只包含整數(shù)的簡(jiǎn)單列表。

注意事項(xiàng)

如果給定的列表中的元素本身也是一個(gè)列表,那么該元素也可以包含列表。

樣例

給定[1,2,[1,2]],返回[1,2,1,2]。

給定[4,[3,[2,[1]]]],返回[4,3,2,1]。

該問(wèn)題要求對(duì)復(fù)合結(jié)構(gòu)列表進(jìn)行處理, 列表的元素可能為整數(shù),也可能為整數(shù)。以目標(biāo)列表[1,2,[1,2]]為例,首個(gè)元素為整數(shù)1,第2個(gè)元素為整數(shù)2,后1個(gè)元素為列表 [1,2]。列表 [1,2] 又含有2個(gè)整數(shù)元素。核心的算法需要用到遞歸處理:以目標(biāo)列表 [4,[3,[2,[1]]]] 為例,簡(jiǎn)單說(shuō)明算法。首先處理目標(biāo)列表 [4,[3,[2,[1]]]],找出第1個(gè)整數(shù)元素并將該元素放入輸出列表。處理目標(biāo)列表 [4,[3,[2,[1]]]],找出第2個(gè)列表元素 [3,[2,[1]]] 。處理目標(biāo)列表 [3,[2,[1]]],找出第1個(gè)整數(shù)元素并將該元素放入輸出列表。處理目標(biāo)列表 [3,[2,[1]]],找出第2個(gè)列表元素 [2,[1]]。處理目標(biāo)列表 [2,[1]],找出第1個(gè)整數(shù)元素并將該元素放入輸出列表。處理目標(biāo)列表 [2,[1]],找出第2個(gè)列表元素 [1]。處理目標(biāo)列表 [1],找出第1個(gè)整數(shù)元素并將該元素放入輸出列表。

核心算法部分內(nèi)容見(jiàn)下圖:


核心算法部分內(nèi)容
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容