问题描述:
给定一个列表,该列表中的每个要素要么是个列表,要么是整数。将其变成一个只包含整数的简单列表。
样例:
给定 [1,2,[1,2]]
,返回 [1,2,1,2]
。
给定 [4,[3,[2,[1]]]]
,返回 [4,3,2,1]
。
1 /** 2 * // This is the interface that allows for creating nested lists. 3 * // You should not implement it, or speculate about its implementation 4 * class NestedInteger { 5 * public: 6 * // Return true if this NestedInteger holds a single integer, 7 * // rather than a nested list. 8 * bool isInteger() const; 9 * 10 * // Return the single integer that this NestedInteger holds, 11 * // if it holds a single integer 12 * // The result is undefined if this NestedInteger holds a nested list 13 * int getInteger() const; 14 * 15 * // Return the nested list that this NestedInteger holds, 16 * // if it holds a nested list 17 * // The result is undefined if this NestedInteger holds a single integer 18 * const vector<NestedInteger> &getList() const; 19 * }; 20 */ 21 class Solution { 22 public: 23 // @param nestedList a list of NestedInteger 24 // @return a list of integer 25 vector<int> result; 26 vector<int> flatten(const vector<NestedInteger> &nestedList) { 27 int nums = nestedList.size(); 28 29 for (int i = 0; i < nums; i++) { 30 if (nestedList[i].isInteger()) { 31 result.push_back(nestedList[i].getInteger()); 32 } else { 33 flatten(nestedList[i].getList()); 34 } 35 } 36 return result; 37 } 38 };