Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class NestedIterator implements Iterator<Integer> {
- private NestedInteger val;
- private Stack<Iterator<NestedInteger>> its;
- public NestedIterator(List<NestedInteger> list) {
- its = new Stack<>();
- its.push(list.iterator());
- }
- @Override
- public Integer next() {
- return val.getInteger();
- }
- @Override
- public boolean hasNext() {
- while(!its.isEmpty()) {
- Iterator<NestedInteger> it = its.peek();
- if (!it.hasNext()) its.pop();
- else {
- NestedInteger ni = it.next();
- if (ni.isInteger()) {
- val = ni;
- return true;
- } else {
- its.push(ni.getList().iterator());
- }
- }
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement