Write a method named middle that returns the middle value in a linked list of integers.
The middle value is one halfway down the list.
For example, if the list is [11, -2, 45, 39, 84], you should return 45.
If the list is of even length, return the rightmost of the two middle elements.
For example, if the list is [11, -2, 88, 45, 39, 0], you should return 45.
If the list is empty, it should throw a NoSuchElementException.
(For added challenge, can you solve this problem while traversing the list only once?)
Assume that you are adding this method to the LinkedIntList class as defined below:
public class LinkedIntList {
private ListNode front; // null for an empty list
...
}