Geeksforgeeks

It's live! The biggest programming festival has begun! Check out Geek Week now!

Error

Given a singly linked list of **N** nodes.

The task is to find the **middle** of the linked list. For example, if the linked list is

**1-> 2->3->4->5**,** **then the middle node of the list is **3**.

If there are two middle nodes(in case, when **N** is even), print the **second middle** element.

For example, if the linked list given is **1->2->3->4->5->6**, then the middle node of the list is **4**.

**Example 1:**

Input:LinkedList: 1->2->3->4->5Output:3Explanation:Middle of linked list is 3.

**Example 2: **

Input:LinkedList: 2->4->6->7->5->1Output:7Explanation:Middle of linked list is 7.

**Your Task:**

The task is to complete the function **getMiddle**() which takes a head reference as the only argument and should return the data at the middle node of the linked list.

**Expected Time Complexity: **O(N).

**Expected Auxiliary Space: **O(1).

**Constraints:**

1 <= N <= 5000

We are replacing the old Disqus forum with the new Discussions section given below.

Click here to view old Disqus comments.

Click here to view old Disqus comments.

Login to report an issue on this page.

We strongly recommend solving this problem on your own before viewing its editorial. Do you still want to view the editorial?

YesLoading...

Finding middle element in a linked list

...