23. Split List into Two Halves
Locates the middle using slow/fast pointers, then cuts slow.next = None to yield two sublists.
Live loop — open the studio to scrub, add your own array, or race it in Battle Arena.
Asked in interviews at
Reference implementation (Python)
def split_in_half(head):
if not head or not head.next:
return head, None
slow, fast = head, head.next
while fast and fast.next:
slow, fast = slow.next, fast.next.next
second_half = slow.next
slow.next = None
return head, second_halfEmbed this visualization
Drop a live, looping 23. Split List into Two Halves canvas into a blog post or course page.
<iframe src="/embed/split-list-halves" width="100%" height="380" style="border:1px solid #e6e8ec;border-radius:14px" loading="lazy" title="3D algorithm visualization by CodeWithMunnaX"></iframe>Frequently asked
What is the time and space complexity of 23. Split List into Two Halves?
23. Split List into Two Halves runs in O(n) time and O(1) auxiliary space.
Is the 23. Split List into Two Halves visualizer free?
The core 3D visualizer, Web Audio chimes and step intuition are free. A one-time ₹49 Pro Pass unlocks advanced algorithms, large custom arrays, Battle Arena and reel export.
Which companies ask 23. Split List into Two Halves in interviews?
23. Split List into Two Halves shows up in interviews at Twitter, Meta, Snapchat.
How does the 3D visualization of 23. Split List into Two Halves work?
Each array value becomes a 3D pillar whose height maps to its value. Comparisons glow amber, swaps flash red, and settled elements lock green while a floating pointer badge tracks the active index — synchronized line-by-line with the Python code.