Introduction
The Middle of Linked List problem involves finding the middle node of a linked list.
The task is to:
- traverse linked list efficiently
- find middle element
- avoid counting nodes separately
Example:
Input:
1 -> 2 -> 3 -> 4 -> 5
Output:3
Explanation:
Middle node is:3
Nodes before:
1,2
Nodes after:
4,5
This problem is one of the most important applications of:
Fast and Slow Pointer TechniqueConstraints
1 <= Number of Nodes <= 10^5-10^9 <= Node Value <= 10^9
Approach 1 : Brute Force (Count Nodes)
Explanations:
Explanation:
The idea is:
- count total nodes
- traverse again
- stop at middle position
Steps:
- Count nodes.
- Calculate middle index.
- Traverse again.
- Return middle node.
This approach works but:
- requires two traversals
So Fast & Slow Pointer solution is preferred.
Dry Run
Input:1 -> 2 -> 3 -> 4 -> 5
Count nodes:
5
Middle index:
5 // 2 = 2
Traverse:
1 -> 2 -> 3
Middle node:
3
Practice :
Complexity Analysis :
Time Complexity:- O(n)Explanation :
Linked list is traversed twice.
Space Complexity:- O(1)
Explanation :
No extra space is used.
Approach 2 : Optimal Solution(Using Fast & Slow Pointer)
Explanations:
Explanation:
This is the most optimized and interview-preferred solution.
The idea is:
- use two pointers:
slow
fast - slow moves one step
- fast moves two steps
When fast reaches end:
- slow reaches middle
Dry Run
Input:1 -> 2 -> 3 -> 4 -> 5
Slow:
1 -> 2 -> 3
Fast:
1 -> 3 -> 5
Fast reaches end
Middle node:
3
Practice :
Complexity Analysis :
Time Complexity:- O(n)
Explanation :
Each node is visited at most once.
Space Complexity:- O(1)
Explanation :No extra space is used.
Why This Problem is Important
This problem builds the foundation for:
- Fast & Slow Pointer
- Linked List traversal
- Pointer optimization
- Efficient searching
- Floyd’s Technique
Real-World Applications
Middle node detection is used in:
- Divide and conquer algorithms
- Merge sort on linked list
- Data stream processing
- Memory optimization
- Network traversal systems
Common Beginner Mistakes
- Incorrect fast pointer movement
- Forgetting NULL checks
- Wrong middle calculation
- Infinite loops
- Pointer update errors
Interview Tip
Interviewers often expect:
- Fast & Slow Pointer optimization
- O(1) space solution
- efficient traversal logic
- clean pointer handling
Always explain:
- why fast moves two steps
- how slow pointer reaches middle automatically
Related Questions
- Linked List Cycle
- Detect Cycle II
- Happy Number
- Reverse Linked List
- Remove Nth Node
Final Takeaway
The Middle of Linked List problem is one of the most important Fast & Slow Pointer problems.
It teaches:
- pointer optimization
- efficient traversal
- Floyd’s technique
- linked list processing
Understanding this problem builds a strong foundation for:
- advanced linked list problems
- pointer-based algorithms
- interview-level Fast & Slow Pointer questions.