Split Linked List

Hard Singly Linked List: Advanced PRO
🔒 Login to Unlock

Problem Statement

Write a C program to split a singly linked list into two halves and print both halves separately.

Input Format

First line contains n. Second line contains n elements.

Output Format

First line: elements of the first half. Second line: elements of the second half.

Constraints

2 <= n <= 50

Sample Input

5
10 20 30 40 50

Sample Output

10 20 30
40 50

Explanation

Find the middle node using slow and fast pointers, split the list into two distinct lists at the midpoint, and print both.

Starter Code

#include <stdio.h>
#include <stdlib.h>

struct Node {
    int data;
    struct Node *next;
};

int main() {
    int n;
    if (scanf("%d", &n) == 1) {
        // Write your code here to split linked list into two halves
    }
    return 0;
}

Limits

  • Time Limit: 1s
  • Memory Limit: 256MB

Embedded C Programming

Updated: March 15, 2026
Intermediate

Embedded systems rely on efficient low-level programming to interact directly with hardware. In this course, you will learn how to write practical Embedded C programs used in real microcontroller-based systems. Rather than focusing only on theory, this course follows a practice-driven approach. Each lesson includes hands-on coding exercises that simulate real firmware development tasks used