Given a linked list of strings, we need to reverse each word of the string in the given linked list.
Examples:
Input: neveropen a computer science portal for neveropen Output: skeegrofskeeg a retupmoc ecneics latrop rof skeeg Input: Publish your own articles on neveropen Output: hsilbuP ruoy nwo selcitra no skeegrofskeeg
Using a loop iterate the list till null and take string from each node and reverse the string.
Implementation:
C++
// C++ program to reverse each word// in a linked list#include <bits/stdc++.h>using namespace std;// Linked list Node structurestruct Node { string c; struct Node* next;};// Function to create newNode// in a linked liststruct Node* newNode(string c){ Node* temp = new Node; temp->c = c; temp->next = NULL; return temp;};// reverse each node datavoid reverse_word(string& str){ reverse(str.begin(), str.end());}void reverse(struct Node* head){ struct Node* ptr = head; // iterate each node and call reverse_word // for each node data while (ptr != NULL) { reverse_word(ptr->c); ptr = ptr->next; }}// printing linked listvoid printList(struct Node* head){ while (head != NULL) { cout << head->c << " "; head = head->next; }}// Driver programint main(){ Node* head = newNode("Geeksforneveropen"); head->next = newNode("a"); head->next->next = newNode("computer"); head->next->next->next = newNode("science"); head->next->next->next->next = newNode("portal"); head->next->next->next->next->next = newNode("for"); head->next->next->next->next->next->next = newNode("neveropen"); cout << "List before reverse: \n"; printList(head); reverse(head); cout << "\n\nList after reverse: \n"; printList(head); return 0;} |
Java
// Java program to reverse each word // in a linked list class GFG{// Linked list Node ure static class Node{ String c; Node next; }; // Function to create newNode // in a linked list static Node newNode(String c) { Node temp = new Node(); temp.c = c; temp.next = null; return temp; }; // reverse each node data static String reverse_word(String str) { String s = ""; for(int i = 0; i < str.length(); i++) s = str.charAt(i) + s; return s;} static Node reverse( Node head) { Node ptr = head; // iterate each node and call reverse_word // for each node data while (ptr != null) { ptr.c = reverse_word(ptr.c); ptr = ptr.next; } return head;} // printing linked list static void printList( Node head) { while (head != null) { System.out.print( head.c + " "); head = head.next; } } // Driver program public static void main(String args[]){ Node head = newNode("Geeksforneveropen"); head.next = newNode("a"); head.next.next = newNode("computer"); head.next.next.next = newNode("science"); head.next.next.next.next = newNode("portal"); head.next.next.next.next.next = newNode("for"); head.next.next.next.next.next.next = newNode("neveropen"); System.out.print( "List before reverse: \n"); printList(head); head = reverse(head); System.out.print( "\n\nList after reverse: \n"); printList(head); } }// This code is contributed by Arnab Kundu |
Python3
# Python3 program to reverse each word # in a linked list # Node of a linked list class Node: def __init__(self, next = None, data = None): self.next = next self.data = data # Function to create newNode # in a linked list def newNode(c) : temp = Node() temp.c = c temp.next = None return temp # reverse each node data def reverse_word(str) : s = "" i = 0 while(i < len(str) ): s = str[i] + s i = i + 1 return sdef reverse( head) : ptr = head # iterate each node and call reverse_word # for each node data while (ptr != None): ptr.c = reverse_word(ptr.c) ptr = ptr.next return head# printing linked list def printList( head) : while (head != None): print( head.c ,end = " ") head = head.next # Driver program head = newNode("Geeksforneveropen") head.next = newNode("a") head.next.next = newNode("computer") head.next.next.next = newNode("science") head.next.next.next.next = newNode("portal") head.next.next.next.next.next = newNode("for") head.next.next.next.next.next.next = newNode("neveropen") print( "List before reverse: ") printList(head) head = reverse(head) print( "\n\nList after reverse: ") printList(head) # This code is contributed by Arnab Kundu |
C#
// C# program to reverse each word // in a linked listusing System;class GFG { // Linked list Node ure public class Node { public String c; public Node next; }; // Function to create newNode // in a linked list static Node newNode(String c) { Node temp = new Node(); temp.c = c; temp.next = null; return temp; } // reverse each node data static String reverse_word(String str) { String s = ""; for(int i = 0; i < str.Length; i++) s = str[i] + s; return s; } static Node reverse( Node head) { Node ptr = head; // iterate each node and call reverse_word // for each node data while (ptr != null) { ptr.c = reverse_word(ptr.c); ptr = ptr.next; } return head; } // printing linked list static void printList( Node head) { while (head != null) { Console.Write( head.c + " "); head = head.next; } } // Driver program public static void Main(String []args) { Node head = newNode("Geeksforneveropen"); head.next = newNode("a"); head.next.next = newNode("computer"); head.next.next.next = newNode("science"); head.next.next.next.next = newNode("portal"); head.next.next.next.next.next = newNode("for"); head.next.next.next.next.next.next = newNode("neveropen"); Console.Write( "List before reverse: \n"); printList(head); head = reverse(head); Console.Write( "\n\nList after reverse: \n"); printList(head); } } // This code contributed by Rajput-Ji |
Javascript
<script>// JavaScript program to reverse each word // in a linked list// Linked list Node ure class Node { constructor() { this.c = ""; this.next = null; }}; // Function to create newNode // in a linked list function newNode(c) { var temp = new Node(); temp.c = c; temp.next = null; return temp; } // reverse each node data function reverse_word(str) { var s = ""; for(var i = 0; i < str.length; i++) s = str[i] + s; return s; } function reverse(head) { var ptr = head; // iterate each node and call reverse_word // for each node data while (ptr != null) { ptr.c = reverse_word(ptr.c); ptr = ptr.next; } return head; } // printing linked list function printList( head) { while (head != null) { document.write( head.c + " "); head = head.next; } } // Driver program var head = newNode("Geeksforneveropen"); head.next = newNode("a"); head.next.next = newNode("computer"); head.next.next.next = newNode("science"); head.next.next.next.next = newNode("portal"); head.next.next.next.next.next = newNode("for"); head.next.next.next.next.next.next = newNode("neveropen"); document.write( "List before reverse: <br>"); printList(head); head = reverse(head); document.write( "<br><br>List after reverse: <br>"); printList(head); </script> |
List before reverse: Geeksforneveropen a computer science portal for neveropen List after reverse: skeegrofskeeG a retupmoc ecneics latrop rof skeeg
Time complexity : O(n)
Auxiliary Space : O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

… [Trackback]
[…] Info on that Topic: geeksforgeeks.org/reverse-each-word-in-a-linked-list-node/ […]