Задано зв'язний список. Потрібно знайти його середній елемент.
Ось визначення зв'язного списку:
// Java
class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
next = null;
}
}// C++
class ListNode
{
public:
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};// C
struct ListNode
{
int val;
struct ListNode *next;
};Реалізуйте функцію MiddleElement, яка повертає вказівник на середній елемент. Якщо список містить елементів, то середнім вважається елемент з індексом .
// Java
ListNode MiddleElement(ListNode head)// C, C++
ListNode* MiddleElement(ListNode *head)Функція отримує вказівник head на голову зв'язного списку.
Функція повинна повернути вказівник на середній елемент списку.

Довжина списку n = 5 (непарна). Функція MiddleElement повинна повернути вказівник на вузол зі значенням (середній елемент).

Довжина списку n = 4 (парна). Функція MiddleElement повинна повернути вказівник на вузол зі значенням (середній елемент).