Reverse each word in a linked list node

Given a linked list of strings, we need to reverse each word of the string in the given linked list.
Examples:
Input: zambiatek a computer science portal for zambiatek Output: skeegrofskeeg a retupmoc ecneics latrop rof skeeg Input: Publish your own articles on zambiatek 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("Geeksforzambiatek"); 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("zambiatek"); 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("Geeksforzambiatek"); 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("zambiatek"); 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("Geeksforzambiatek") 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("zambiatek") 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("Geeksforzambiatek"); 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("zambiatek"); 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("Geeksforzambiatek"); 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("zambiatek"); document.write( "List before reverse: <br>"); printList(head); head = reverse(head); document.write( "<br><br>List after reverse: <br>"); printList(head); </script> |
Output:
List before reverse: Geeksforzambiatek a computer science portal for zambiatek List after reverse: skeegrofskeeG a retupmoc ecneics latrop rof skeeg
Time complexity : O(n)
Auxiliary Space : O(1)
Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!



