Skip to content
Related Articles

Related Articles

Improve Article

Convert a String to a Singly Linked List

  • Last Updated : 19 Jul, 2021

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 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 ->

 

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.




My Personal Notes arrow_drop_up
Recommended Articles
Page :