Return the ‘middle’ node of a linked list. If the list has an even number of elements, return the node at the end of the first half of the list.
We are using version of linked list that implements Kotlin
Iterator interface, so we can
use forEach instead of while loop.
| Challenge | Solution |
Do not use a counter variable, do not retrieve the size of the list, and only iterate through the list one time.
Example 1
val l = new LinkedList()
l.insertLast('a')
l.insertLast('b')
l.insertLast('c')
midpoint(l).data // 'b'
Example 2
val l = new LinkedList()
l.insertLast('a')
l.insertLast('b')
l.insertLast('c')
l.insertLast('d')
midpoint(l).data // 'b'