Question: Find the middle of a linked list. For example, if the given linked list is 1->2->3->4->5 then the output should be 3.
If there are even nodes, then there would be two middle nodes, we need to print the second middle element. For example, if the given linked list is 1->2->3->4->5->6 then the output should be 4.
Throw an exception if the list is empty.
//method to get the middle of the linked list public int getMiddle() throws Exception { //throw an exception if list is null if (head == null) { throw new Exception("List is Empty"); } else { //find the length of the linked list int length = findLength(); //index: to keep a count of the number of nodes traversed //middle: indicates the middle node number int index = 0, middle = length / 2; //temp: pointer which traverses the linked list ListNode temp = head; //traverse till the middle node while (index != middle) { temp = temp.getNext(); index++; } //return the value of the middle node return temp.getData(); } }