Compruebe si los elementos de la lista enlazada están presentes en pares

Dada una lista unida de enteros. La tarea es verificar si cada elemento en la lista enlazada está presente en un par, es decir, todos los elementos aparecen incluso en ninguno. de tiempos
Ejemplos: 
 

Input: 1 -> 2 -> 3 -> 3 -> 1 -> 2
Output: Yes

Input: 10 -> 20 -> 30 -> 20
Output: No

Acercarse: 
 

  • Inicialice un Node temporal que apunte a head .
  • Tome una variable para calcular XOR de todos los elementos.
  • Comience a recorrer la lista enlazada y siga calculando el XOR con Node->datos.
  • Devuelve verdadero si XOR es 0, de lo contrario devuelve falso.

A continuación se muestra la implementación del enfoque anterior: 
 

C++

// C++ program to check if elements of
// linked lists are present in pair
#include <bits/stdc++.h>
 
using namespace std;
 
// A linked list node
struct Node {
    int data;
    struct Node* next;
};
 
// Function to check if elements of
// linked list are present in pair
bool isPair(struct Node* head)
{
 
    int xxor = 0;
 
    struct Node* temp = head;
 
    while (temp != NULL) {
        xxor ^= temp->data;
        temp = temp->next;
    }
 
    return xxor;
}
 
// Function to add a node at the
// beginning of Linked List
void push(struct Node** head_ref, int new_data)
{
    /* allocate node */
    struct Node* new_node = (struct Node*)malloc(sizeof(struct Node));
 
    /* put in the data */
    new_node->data = new_data;
 
    /* link the old list off the new node */
    new_node->next = (*head_ref);
 
    /* move the head to point to the new node */
    (*head_ref) = new_node;
}
 
// Driver program to test above function
int main()
{
    struct Node* first = NULL;
 
    /* First constructed linked list is:
    10 -> 34 -> 1 -> 10 -> 34 -> 1 */
    push(&first, 1);
    push(&first, 34);
    push(&first, 10);
    push(&first, 1);
    push(&first, 34);
    push(&first, 10);
 
    // Calling function to check pair elements
    if (!isPair(first)) {
        cout << "Yes" << endl;
    }
    else {
        cout << "No" << endl;
    }
 
    return 0;
}

Java

// Java program to check if elements of
// linked lists are present in pair
 
// Node Class
class Node
{
    int data;
    Node next;
 
    // Constructor to create a new node
    Node(int d)
    {
        data = d;
        next = null;
    }
}
 
class SLL
{
 
    // function to insert a node at the beginning
    // of the Singly Linked List
    static Node push(Node head, int data)
    {
        Node newNode = new Node(data);
        newNode.next = head;
        head = newNode;
        return head;
    }
 
    // Function to check if elements of
    // linked list are present in pair
    static boolean isPair(Node head)
    {
        int xxor = 0;
        Node temp = head;
        while (temp != null)
        {
            xxor ^= temp.data;
            temp = temp.next;
        }
        return xxor != 0;
    }
 
    // Driver code
    public static void main(String[] args)
    {
        Node head = null;
 
        // First constructed linked list
        // 10 -> 34 -> 1 -> 10 -> 34 -> 1
 
        head = push(head, 1);
        head = push(head, 34);
        head = push(head, 10);
        head = push(head, 1);
        head = push(head, 34);
        head = push(head, 10);
 
        // Calling function to check pair elements
        if (!isPair(head))
        {
            System.out.println("Yes");
        }
        else
        {
            System.out.println("No");
        }
    }
}
 
// This code is contributed by Vivekkumar Singh

Python3

# Python3 program to check if elements of
# linked lists are present in pair
 
# A linked list node
class Node:
    def __init__(self):
        self.data = 0
        self.next = None
 
# Function to check if elements of
# linked list are present in pair
def isPair( head):
    xxor = 0
    temp = head
 
    while (temp != None) :
        xxor = xxor ^ temp.data
        temp = temp.next
 
    return xxor
 
# Function to add a node at the
# beginning of Linked List
def push( head_ref, new_data):
 
    # allocate node
    new_node = Node()
 
    # put in the data
    new_node.data = new_data
 
    # link the old list off the new node
    new_node.next = (head_ref)
 
    # move the head to point to the new node
    (head_ref) = new_node
     
    return head_ref
 
# Driver code
 
first = None
 
# First constructed linked list is:
# 10 . 34 . 1 . 10 . 34 . 1
first = push(first, 1)
first = push(first, 34)
first = push(first, 10)
first = push(first, 1)
first = push(first, 34)
first = push(first, 10)
 
# Calling function to check pair elements
if (not isPair(first)):
    print( "Yes" )
     
else :
    print( "No" )
     
# This code is contributed by Arnab Kundu

C#

// C# program to check if elements of
// linked lists are present in pair
using System;
 
// Node Class
public class Node
{
    public int data;
    public Node next;
 
    // Constructor to create a new node
    public Node(int d)
    {
        data = d;
        next = null;
    }
}
 
public class SLL
{
 
    // function to insert a node at the beginning
    // of the Singly Linked List
    static Node push(Node head, int data)
    {
        Node newNode = new Node(data);
        newNode.next = head;
        head = newNode;
        return head;
    }
 
    // Function to check if elements of
    // linked list are present in pair
    static Boolean isPair(Node head)
    {
        int xxor = 0;
        Node temp = head;
        while (temp != null)
        {
            xxor ^= temp.data;
            temp = temp.next;
        }
        return xxor != 0;
    }
 
    // Driver code
    public static void Main(String[] args)
    {
        Node head = null;
 
        // First constructed linked list
        // 10 -> 34 -> 1 -> 10 -> 34 -> 1
 
        head = push(head, 1);
        head = push(head, 34);
        head = push(head, 10);
        head = push(head, 1);
        head = push(head, 34);
        head = push(head, 10);
 
        // Calling function to check pair elements
        if (!isPair(head))
        {
            Console.WriteLine("Yes");
        }
        else
        {
            Console.WriteLine("No");
        }
    }
}
 
// This code is contributed by Rajput-Ji

Javascript

<script>
 
      // JavaScript program to check if elements of
      // linked lists are present in pair
      // Node Class
      class Node {
        // Constructor to create a new node
        constructor(d) {
          this.data = d;
          this.next = null;
        }
      }
 
      // function to insert a node at the beginning
      // of the Singly Linked List
      function push(head, data) {
        var newNode = new Node(data);
        newNode.next = head;
        head = newNode;
        return head;
      }
 
      // Function to check if elements of
      // linked list are present in pair
      function isPair(head) {
        var xxor = 0;
        var temp = head;
        while (temp != null) {
          xxor ^= temp.data;
          temp = temp.next;
        }
        return xxor != 0;
      }
 
      // Driver code
      var head = null;
 
      // First constructed linked list
      // 10 -> 34 -> 1 -> 10 -> 34 -> 1
 
      head = push(head, 1);
      head = push(head, 34);
      head = push(head, 10);
      head = push(head, 1);
      head = push(head, 34);
      head = push(head, 10);
 
      // Calling function to check pair elements
      if (!isPair(head)) {
        document.write("Yes");
      } else {
        document.write("No");
      }
       
</script>
Producción: 

Yes

 

Publicación traducida automáticamente

Artículo escrito por barykrg 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 *