File tree 2 files changed +38
-1
lines changed
2 files changed +38
-1
lines changed Original file line number Diff line number Diff line change 231
231
| 280 | 🔒 [ Wiggle Sort] ( https://leetcode.com/problems/wiggle-sort ) | | |
232
232
| 281 | 🔒 [ Zigzag Iterator] ( https://leetcode.com/problems/zigzag-iterator ) | | |
233
233
| 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 ) | |
235
235
| 285 | 🔒 [ Inorder Successor in BST] ( https://leetcode.com/problems/inorder-successor-in-bst ) | | |
236
236
| 286 | 🔒 [ Walls and Gates] ( https://leetcode.com/problems/walls-and-gates ) | | |
237
237
| 287 | [ Find the Duplicate Number] ( https://leetcode.com/problems/find-the-duplicate-number ) | | |
Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments