Programa Java para verificar si una lista enlazada de strings forma un palíndromo

Dada una lista vinculada que maneja datos de strings, verifique si los datos son palíndromos o no. Ejemplos:

Input: a -> bc -> d -> dcb -> a -> NULL
Output: True
String "abcddcba" is palindrome.

Input: a -> bc -> d -> ba -> NULL
Output: False
String "abcdba" is not palindrome. 

La idea es muy simple. Construya una string a partir de una lista enlazada dada y verifique si la string construida es palíndromo o no. 

Java

// Java Program to check if a given linked list
// of strings form a palindrome
import java.util.Scanner;
 
// Linked List node
class Node
{
    String data;
    Node next;
 
    Node(String d)
    {
        data = d;
        next = null;
    }
}
 
class LinkedList_Palindrome
{
    Node head;
 
    // A utility function to check if
    // str is palindrome or not
    boolean isPalidromeUtil(String str)
    {
        int length = str.length();
 
        // Match characters from beginning
        // and end.
        for (int i = 0; i < length / 2; i++)
            if (str.charAt(i) !=
                str.charAt(length - i - 1))
                return false;
 
        return true;
    }
 
    // Returns true if string formed by
    // linked list is palindrome
    boolean isPalindrome()
    {
        Node node = head;
 
        // Append all nodes to form a
        // string
        String str = "";
        while (node != null)
        {
            str = str.concat(node.data);
            node = node.next;
        }
 
        // Check if the formed string is
        // palindrome
        return isPalidromeUtil(str);
    }
 
    // Driver code
    public static void main(String[] args)
    {
        LinkedList_Palindrome list =
           new LinkedList_Palindrome();
        list.head = new Node("a");
        list.head.next = new Node("bc");
        list.head.next.next = new Node("d");
        list.head.next.next.next =
             new Node("dcb");
        list.head.next.next.next.next =
             new Node("a");
        System.out.println(list.isPalindrome());
    }
}
// This code is contributed by Amit Khandelwal

Producción:

true

Complejidad de tiempo: O(n), donde n es el número de Nodes en la lista enlazada dada.
Espacio Auxiliar: O(m) donde m es la longitud de la string formada por la lista enlazada.

Consulte el artículo completo sobre Comprobar si una lista enlazada de strings forma un palíndromo para obtener más detalles.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *