提交了两次才AC,被困于[]这种情况。当stack处理过程中为空时,要return false;
/** * // This is the interface that allows for creating nested lists. * // You should not implement it, or speculate about its implementation * class NestedInteger { * public: * // Return true if this NestedInteger holds a single integer, rather than a nested list. * bool isInteger() const; * * // Return the single integer that this NestedInteger holds, if it holds a single integer * // The result is undefined if this NestedInteger holds a nested list * int getInteger() const; * * // Return the nested list that this NestedInteger holds, if it holds a nested list * // The result is undefined if this NestedInteger holds a single integer * const vector<NestedInteger> &getList() const; * }; */class NestedIterator {PRivate: stack<NestedInteger> helper;public: NestedIterator(vector<NestedInteger> &nestedList) { for(int i=nestedList.size()-1;i>=0;i--) helper.push(nestedList[i]); } int next() { int temp=helper.top().getInteger(); helper.pop(); return temp; } bool hasNext() { while((!helper.empty())&&!(helper.top().isInteger())) { vector<NestedInteger> tempList=helper.top().getList(); helper.pop(); for(int i=tempList.size()-1;i>=0;i--) helper.push(tempList[i]); } if(helper.empty()) return false; else return true; }};/** * Your NestedIterator object will be instantiated and called as such: * NestedIterator i(nestedList); * while (i.hasNext()) cout << i.next(); */新闻热点
疑难解答