Convert a String to a Singly Linked List
Last Updated :
12 Jul, 2025
Given string str, the task is to convert it into a singly Linked List.
Examples:
Input: str = "ABCDABC"
Output: A -> B -> C -> D -> A -> B -> C
Input: str = "GEEKS"
Output: G -> E -> E -> K -> S
Approach:
- Create a Linked List
- Fetch each character of the string and insert it into a new node in the Linked List
- Print the Linked List
Below is the implementation of the above approach:
C++
// C++ program to Convert a String
// to a Singly Linked List
#include <iostream>
using namespace std;
// Structure for a Singly Linked List
struct node {
char data;
node* next;
};
// Function to add a new node to the Linked List
node* add(char data)
{
node* newnode = new node;
newnode->data = data;
newnode->next = NULL;
return newnode;
}
// Function to convert the string to Linked List.
node* string_to_SLL(string text, node* head)
{
head = add(text[0]);
node* curr = head;
// curr pointer points to the current node
// where the insertion should take place
for (int i = 1; i < text.size(); i++) {
curr->next = add(text[i]);
curr = curr->next;
}
return head;
}
// Function to print the data present in all the nodes
void print(node* head)
{
node* curr = head;
while (curr != NULL) {
cout << curr->data << " -> ";
curr = curr->next;
}
}
// Driver code
int main()
{
string text = "GEEKS";
node* head = NULL;
head = string_to_SLL(text, head);
print(head);
return 0;
}
// This code is contributed by code_freak
Java
// Java program to Convert a String
// to a Singly Linked List
class GFG
{
// Structure for a Singly Linked List
static class node
{
char data;
node next;
};
// Function to add a new node to the Linked List
static node add(char data)
{
node newnode = new node();
newnode.data = data;
newnode.next = null;
return newnode;
}
// Function to convert the string
// to Linked List.
static node string_to_SLL(String text,
node head)
{
head = add(text.charAt(0));
node curr = head;
// curr pointer points to the current node
// where the insertion should take place
for (int i = 1; i < text.length(); i++)
{
curr.next = add(text.charAt(i));
curr = curr.next;
}
return head;
}
// Function to print the data
// present in all the nodes
static void print(node head)
{
node curr = head;
while (curr != null)
{
System.out.print(curr.data + " -> ");
curr = curr.next;
}
}
// Driver code
public static void main(String[] args)
{
String text = "GEEKS";
node head = null;
head = string_to_SLL(text, head);
print(head);
}
}
// This code is contributed by PrinciRaj1992
Python3
# Python3 program to Convert a String
# to a Singly Linked List
# Structure for a Singly Linked List
class node:
def __init__(self):
data = None
next = None
# Function to add a node to the Linked List
def add(data):
newnode = node()
newnode.data = data
newnode.next = None
return newnode
# Function to convert the string
# to Linked List.
def string_to_SLL(text,head):
head = add(text[0])
curr = head
# curr pointer points to the current node
# where the insertion should take place
for i in range(len(text) - 1):
curr.next = add(text[i + 1])
curr = curr.next
return head
# Function to print the data
# present in all the nodes
def print_(head):
curr = head
while (curr != None) :
print ((curr.data), end = " - > " )
curr = curr.next
# Driver code
text = "GEEKS"
head = None
head = string_to_SLL(text, head)
print_(head)
# This code is contributed by Arnab Kundu
C#
// C# program to Convert a String
// to a Singly Linked List
using System;
class GFG
{
// Structure for a Singly Linked List
class node
{
public char data;
public node next;
};
// Function to add a new node
// to the Linked List
static node add(char data)
{
node newnode = new node();
newnode.data = data;
newnode.next = null;
return newnode;
}
// Function to convert the string
// to Linked List.
static node string_to_SLL(String text,
node head)
{
head = add(text[0]);
node curr = head;
// curr pointer points to the current node
// where the insertion should take place
for (int i = 1; i < text.Length; i++)
{
curr.next = add(text[i]);
curr = curr.next;
}
return head;
}
// Function to print the data
// present in all the nodes
static void print(node head)
{
node curr = head;
while (curr != null)
{
Console.Write(curr.data + " -> ");
curr = curr.next;
}
}
// Driver code
public static void Main(String[] args)
{
String text = "GEEKS";
node head = null;
head = string_to_SLL(text, head);
print(head);
}
}
// This code is contributed by 29AjayKumar
JavaScript
<script>
// Javascript program to Convert a String
// to a Singly Linked List
class node
{
constructor()
{
this.data='';
this.next=null;
}
}
// Function to add a new node to the Linked List
function add(data)
{
let newnode = new node();
newnode.data = data;
newnode.next = null;
return newnode;
}
// Function to convert the string
// to Linked List.
function string_to_SLL(text,head)
{
head = add(text[0]);
let curr = head;
// curr pointer points to the current node
// where the insertion should take place
for (let i = 1; i < text.length; i++)
{
curr.next = add(text[i]);
curr = curr.next;
}
return head;
}
// Function to print the data
// present in all the nodes
function print(head)
{
let curr = head;
while (curr != null)
{
document.write(curr.data + " -> ");
curr = curr.next;
}
}
// Driver code
let text = "GEEKS";
let head = null;
head = string_to_SLL(text, head);
print(head);
// This code is contributed by avanitrachhadiya2155
</script>
Output: G -> E -> E -> K -> S ->
Time Complexity: O(n)
Auxiliary Space: O(n), where n is the length of the given string.
Explore
DSA Fundamentals
Data Structures
Algorithms
Advanced
Interview Preparation
Practice Problem