Source: https://leetcode.com/problems/flatten-nested-list-iterator/

Given a nested list of integers, implement an iterator to flatten it.

Each element is either an integer, or a list — whose elements may also be integers or other lists.

**Example 1:**

Input:[[1,1],2,[1,1]]Output:[1,1,2,1,1]Explanation:By callingnextrepeatedly untilhasNextreturns false, the order of elements returned bynextshould be:`[1,1,2,1,1]`

.

**Example 2:**

Input:[1,[4,[6]]]Output:[1,4,6]Explanation:By callingnextrepeatedly untilhasNextreturns false, the order of elements returned bynextshould be:`[1,4,6]`

.

This problem we need flatten a nested structure, we use a method recursively solve this problem.

First, we call **flatten(nestedList)**. When we meet a number, we put it to numList. When we meet a list, we call **flatten** recursively.

Github: https://github.com/tinyfool/leetcode/tree/master/src/p0341

Other problems related to stack and queue, see also Stack and Queue Data Structure (Java code and Leetcode problems)