Open In App

Convert a String to a Singly Linked List

Improve
Improve
Like Article
Like
Save
Share
Report

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.



Last Updated : 22 Dec, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads