力扣341 扁平化巢狀列表迭代器(深度優先搜尋)

2021-10-22 22:58:47 字數 926 閱讀 7800

力扣341. 扁平化巢狀列表迭代器(深度優先搜尋)

在建構函式中直接解析所有元素(用陣列儲存),然後在遍歷時依次輸出即可

其實要解析乙個扁平化巢狀列表,思路與dfs非常類似,將vector當作乙個非連通圖,每個nestedinteger是乙個連通圖,裡面存了各個節點及其所有的鄰接點。

然後在遍歷每個圖時,只要遇到整型integer,直接輸出,如果是列表vector,遞迴訪問該列表中的所有節點。

**就很簡單,遞迴訪問每個扁平化巢狀列表即可。

/**

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

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

* class nestedinteger ;

*/class nestediterator

void dfs(const vector&nestedlist)

else}}

int next()

bool hasnext()

};/**

* your nestediterator object will be instantiated and called as such:

* nestediterator i(nestedlist);

* while (i.hasnext()) cout << i.next();

*/

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...

341 扁平化巢狀列表迭代器

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