LeetCode C 扁平化巢狀列表迭代器

2021-10-07 18:15:05 字數 1247 閱讀 6216

給你乙個巢狀的整型列表。請你設計乙個迭代器,使其能夠遍歷這個整型列表中的所有整數。

列表中的每一項或者為乙個整數,或者是另乙個列表。其中列表的元素也可能是整數或是其他列表。

示例 1:

輸入: [[1,1],2,[1,1]]

輸出: [1,1,2,1,1]

解釋: 通過重複呼叫 next 直到 hasnext 返回 false,next 返回的元素的順序應該是: [1,1,2,1,1]。

示例 2:

輸入: [1,[4,[6]]]

輸出: [1,4,6]

解釋: 通過重複呼叫 next 直到 hasnext 返回 false,next 返回的元素的順序應該是: [1,4,6]。

介面如下:

*

// this is the inte***ce that allows for creating nested lists.

*// you should not implement it, or speculate about its implementation

*class

nestedinteger

;

思路:使用棧,記錄每個列表。

對於每個列表,我們判斷它是否是單個整數,使用介面中的函式bool isinteger() const 。

若它包含子列表,則將子列表也壓入棧中。

**:

方法1:

class

nestediterator

intnext()

bool

hasnext()

return

true;}

};

方法2:

class

nestediterator

void

parse

(vector

&nestedlist)

}int

next()

bool

hasnext()

};

結果:

[1] zolewit:341. 扁平化巢狀列表迭代器/c++

175 扁平化巢狀列表迭代器

題目描述 給定乙個巢狀的整型列表。設計乙個迭代器,使其能夠遍歷這個整型列表中的所有整數。列表中的項或者為乙個整數,或者是另乙個列表。示例 1 輸入 1,1 2,1,1 輸出 1,1,2,1,1 解釋 通過重複呼叫 next 直到 hasnext 返回false,next 返回的元素的順序應該是 1,...

341 扁平化巢狀列表迭代器

給定乙個巢狀的整型列表。設計乙個迭代器,使其能夠遍歷這個整型列表中的所有整數。列表中的項或者為乙個整數,或者是另乙個列表。示例 1 輸入 1,1 2,1,1 輸出 1,1,2,1,1 解釋 通過重複呼叫 next 直到 hasnext 返回false,next 返回的元素的順序應該是 1,1,2,1...

341 扁平化巢狀列表迭代器

難度 中等 題目描述 思路總結 方法一 用遞迴扁平化整個list 方法二 用棧在呼叫hasnext 的時候找到下乙個元素 題解一 this is the inte ce that allows for creating nested lists.you should not implement it...