Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit dcf5224

Browse files
solve speeking iterator #284 in java
1 parent 63953c1 commit dcf5224

File tree

2 files changed

+38
-1
lines changed

2 files changed

+38
-1
lines changed

β€ŽREADME.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@
231231
| 280 | πŸ”’ [Wiggle Sort](https://leetcode.com/problems/wiggle-sort) | | |
232232
| 281 | πŸ”’ [Zigzag Iterator](https://leetcode.com/problems/zigzag-iterator) | | |
233233
| 283 | [Move Zeroes](https://leetcode.com/problems/move-zeroes) | [![Java](assets/java.png)](src/MoveZeros.java) [![Python](assets/python.png)](python/move_zeroes.py) | |
234-
| 284 | [Peeking Iterator](https://leetcode.com/problems/peeking-iterator) | | |
234+
| 284 | [Peeking Iterator](https://leetcode.com/problems/peeking-iterator) | [![Java](assets/java.png)](src/PeekingIterator.java) | |
235235
| 285 | πŸ”’ [Inorder Successor in BST](https://leetcode.com/problems/inorder-successor-in-bst) | | |
236236
| 286 | πŸ”’ [Walls and Gates](https://leetcode.com/problems/walls-and-gates) | | |
237237
| 287 | [Find the Duplicate Number](https://leetcode.com/problems/find-the-duplicate-number) | | |

β€Žsrc/PeekingIterator.java

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
// https://leetcode.com/problems/peeking-iterator
2+
// T: O(N)
3+
// S: O(N)
4+
5+
import java.util.Iterator;
6+
7+
public class PeekingIterator implements Iterator<Integer> {
8+
final private Iterator<Integer> iterator;
9+
int next;
10+
boolean hasNext;
11+
12+
public PeekingIterator(Iterator<Integer> iterator) {
13+
this.iterator = iterator;
14+
hasNext = iterator.hasNext();
15+
next = iterator.hasNext() ? iterator.next() : 0;
16+
}
17+
18+
// Returns the next element in the iteration without advancing the iterator.
19+
public Integer peek() {
20+
return next;
21+
}
22+
23+
// hasNext() and next() should behave the same as in the Iterator interface.
24+
// Override them if needed.
25+
@Override
26+
public Integer next() {
27+
int result = next;
28+
hasNext = iterator.hasNext();
29+
next = iterator.hasNext() ? iterator.next() : 0;
30+
return result;
31+
}
32+
33+
@Override
34+
public boolean hasNext() {
35+
return hasNext;
36+
}
37+
}

0 commit comments

Comments
(0)

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /