File tree Expand file tree Collapse file tree 2 files changed +38
-1
lines changed
Expand file tree Collapse file tree 2 files changed +38
-1
lines changed Original file line number Diff line number Diff line change 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 ) | | |
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