Skip to content

Commit b99d324

Browse files
authored
Update Flatten Nested List Iterator.java
1 parent e7be315 commit b99d324

File tree

1 file changed

+24
-21
lines changed

1 file changed

+24
-21
lines changed

Medium/Flatten Nested List Iterator.java

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -17,31 +17,34 @@
1717
*/
1818
public class NestedIterator implements Iterator<Integer> {
1919

20-
private Stack<NestedInteger> stack;
21-
22-
public NestedIterator(List<NestedInteger> nestedList) {
23-
this.stack = new Stack<>();
24-
for (int i = nestedList.size() - 1; i >= 0; i--) {
25-
this.stack.push(nestedList.get(i));
20+
private Stack<NestedInteger> stack;
21+
22+
public NestedIterator(List<NestedInteger> nestedList) {
23+
this.stack = new Stack<>();
24+
for (int i = nestedList.size() - 1; i >= 0; i--) {
25+
this.stack.push(nestedList.get(i));
26+
}
2627
}
27-
}
2828

29-
@Override
30-
public Integer next() {
31-
int value = this.stack.pop().getInteger();
32-
return value;
33-
}
29+
@Override
30+
public Integer next() {
31+
return stack.pop().getInteger();
32+
}
3433

35-
@Override
36-
public boolean hasNext() {
37-
while (!this.stack.isEmpty() && !this.stack.peek().isInteger()) {
38-
List<NestedInteger> ni = this.stack.pop().getList();
39-
for (int i = ni.size() - 1; i >= 0; i--) {
40-
this.stack.push(ni.get(i));
41-
}
34+
@Override
35+
public boolean hasNext() {
36+
while (!stack.isEmpty() && !stack.peek().isInteger()) {
37+
NestedInteger popped = stack.pop();
38+
if (popped == null) {
39+
continue;
40+
}
41+
List<NestedInteger> list = popped.getList();
42+
for (int i = list.size() - 1; i >= 0; i--) {
43+
stack.push(list.get(i));
44+
}
45+
}
46+
return !stack.isEmpty();
4247
}
43-
return !this.stack.isEmpty();
44-
}
4548
}
4649

4750
/**

0 commit comments

Comments
 (0)