""" Implement Flatten Arrays. Given an array that may contain nested arrays, give a single resultant array. function flatten(input){ } Example: Input: var input = [2, 1, [3, [4, 5], 6], 7, [8]]; flatten(input); Output: [2, 1, 3, 4, 5, 6, 7, 8] """ def list_flatten(l, a=None): a = list(a) if isinstance(a, (list, tuple)) else [] for i in l: if isinstance(i, (list, tuple)): a = list_flatten(i, a) else: a.append(i) return a # stack version # public static List flatten(List l) { # List main = new ArrayList(); # Stack> stack = new Stack>(); # Stack indexes = new Stack(); # stack.add(l); # indexes.add(0); # while (true) { # if (stack.isEmpty()) # break; # int index1 = indexes.pop(); # l = stack.pop(); # for (int i = index1; i < l.size(); i++) { # NestedList n = l.get(i); # if (n.isInteger()) { # main.add(n.value); # } else { # stack.add(l); # indexes.add(i+1); # l = n.list; # stack.add(l); # indexes.add(0); # break; # } # } # } # return main; # }