Encuentre los elementos más pequeños y más grandes en una lista enlazada individualmente

Dada una lista enlazada individualmente de n Nodes y encuentre los elementos más pequeños y más grandes en la lista enlazada.

Ejemplos: 

C++

// C++ Program to find smallest and largest
// elements in singly linked list.
#include <bits/stdc++.h>
 
using namespace std;
/* Linked list node */
struct Node {
    int data;
    struct Node* next;
};
 
// Function that returns the largest element
// from the linked list.
int largestElement(struct Node* head)
{
    // Declare a max variable and initialize
    // it with INT_MIN value.
    // INT_MIN is integer type and its value
    // is -32767 or less.
    int max = INT_MIN;
 
    // Check loop while head not equal to NULL
    while (head != NULL) {
 
        // If max is less than head->data then
        // assign value of head->data to max
        // otherwise node point to next node.
        if (max < head->data)
            max = head->data;
        head = head->next;
    }
    return max;
}
 
// Function that returns smallest element
// from the linked list.
int smallestElement(struct Node* head)
{
    // Declare a min variable and initialize
    // it with INT_MAX value.
    // INT_MAX is integer type and its value
    // is 32767 or greater.
    int min = INT_MAX;
 
    // Check loop while head not equal to NULL
    while (head != NULL) {
 
        // If min is greater than head->data then
        // assign value of head->data to min
        // otherwise node point to next node.
        if (min > head->data)
            min = head->data;
 
        head = head->next;
    }
    return min;
}
 
// Function that push the element in linked list.
void push(struct Node** head, int data)
{
    // Allocate dynamic memory for newNode.
    struct Node* newNode =
         (struct Node*)malloc(sizeof(struct Node));
 
    // Assign the data into newNode.
    newNode->data = data;
 
    // newNode->next assign the address of
    // head node.
    newNode->next = (*head);
 
    // newNode become the headNode.
    (*head) = newNode;
}
 
// Display linked list.
void printList(struct Node* head)
{
    while (head != NULL) {
        printf("%d -> ", head->data);
        head = head->next;
    }
    cout << "NULL" << endl;
}
 
// Driver program to test the functions
int main()
{
    // Start with empty list
    struct Node* head = NULL;
 
    // Using push() function to construct
    // singly linked list
    // 17->22->13->14->15
    push(&head, 15);
    push(&head, 14);
    push(&head, 13);
    push(&head, 22);
    push(&head, 17);
    cout << "Linked list is : " << endl;
 
    // Call printList() function to display
    // the linked list.
    printList(head);
    cout << "Maximum element in linked list:";
 
    // Call largestElement() function to get largest
    // element in linked list.
    cout << largestElement(head) << endl;
    cout << "Minimum element in linked list:";
 
    // Call smallestElement() function to get smallest
    // element in linked list.
    cout << smallestElement(head) << endl;
 
    return 0;
}

Java

// Java program to find smallest and largest
// elements in singly linked list.
class GfG
{
     
/* Linked list node */
static class Node
{
    int data;
    Node next;
}
static Node head = null;
 
// Function that returns the largest element
// from the linked list.
static int largestElement(Node head)
{
     
    // Declare a max variable and initialize
    // it with INT_MIN value.
    // INT_MIN is integer type and its value
    // is -32767 or less.
    int max = Integer.MIN_VALUE;
 
    // Check loop while head not equal to NULL
    while (head != null)
    {
 
        // If max is less than head->data then
        // assign value of head->data to max
        // otherwise node point to next node.
        if (max < head.data)
            max = head.data;
        head = head.next;
    }
    return max;
}
 
// Function that returns smallest element
// from the linked list.
static int smallestElement(Node head)
{
     
    // Declare a min variable and initialize
    // it with INT_MAX value.
    // INT_MAX is integer type and its value
    // is 32767 or greater.
    int min = Integer.MAX_VALUE;
 
    // Check loop while head not equal to NULL
    while (head != null)
    {
 
        // If min is greater than head->data then
        // assign value of head->data to min
        // otherwise node point to next node.
        if (min > head.data)
            min = head.data;
 
        head = head.next;
    }
    return min;
}
 
// Function that push the element in linked list.
static void push(int data)
{
    // Allocate dynamic memory for newNode.
    Node newNode = new Node();
 
    // Assign the data into newNode.
    newNode.data = data;
 
    // newNode->next assign the address of
    // head node.
    newNode.next = (head);
 
    // newNode become the headNode.
    (head) = newNode;
}
 
// Display linked list.
static void printList(Node head)
{
    while (head != null) {
        System.out.print(head.data + " -> ");
        head = head.next;
    }
    System.out.println("NULL");
}
 
// Driver  code
public static void main(String[] args)
{
    // Start with empty list
    // head = new Node();
 
    // Using push() function to construct
    // singly linked list
    // 17->22->13->14->15
    push( 15);
    push( 14);
    push( 13);
    push( 22);
    push( 17);
    System.out.println("Linked list is : ") ;
 
    // Call printList() function to 
    // display the linked list.
    printList(head);
    System.out.print("Maximum element in linked list: ");
 
    // Call largestElement() function to get
    // largest element in linked list.
    System.out.println(largestElement(head));
    System.out.print("Minimum element in linked list: ");
 
    // Call smallestElement() function to get 
    // smallest element in linked list.
    System.out.print(smallestElement(head));
}
}
 
// This code is contributed by Prerna saini.

Python

# Python3 program to find smallest and largest
# elements in singly linked list.
 
# Linked list node
class Node:
 
    def __init__(self):
        self.data = None
        self.next = None
 
head = None
 
# Function that returns the largest element
# from the linked list.
def largestElement(head):
 
    # Declare a max variable and initialize
    # it with INT_MIN value.
    # INT_MIN is integer type and its value
    # is -32767 or less.
    max = -32767
 
    # Check loop while head not equal to None
    while (head != None):
     
        # If max is less than head.data then
        # assign value of head.data to max
        # otherwise node point to next node.
        if (max < head.data) :
            max = head.data
        head = head.next
     
    return max
 
# Function that returns smallest element
# from the linked list.
def smallestElement(head):
 
    # Declare a min variable and initialize
    # it with INT_MAX value.
    # INT_MAX is integer type and its value
    # is 32767 or greater.
    min = 32767
 
    # Check loop while head not equal to None
    while (head != None) :
     
        # If min is greater than head.data then
        # assign value of head.data to min
        # otherwise node point to next node.
        if (min > head.data) :
            min = head.data
        head = head.next
     
    return min
 
# Function that push the element in linked list.
def push( data) :
 
    global head
 
    # Allocate dynamic memory for newNode.
    newNode = Node()
 
    # Assign the data into newNode.
    newNode.data = data
 
    # newNode.next assign the address of
    # head node.
    newNode.next = (head)
 
    # newNode become the headNode.
    (head) = newNode
 
# Display linked list.
def printList( head) :
 
    while (head != None) :
        print(head.data ,end= " -> ")
        head = head.next
     
    print("None")
 
# Driver code
 
# Start with empty list
# head = new Node()
 
# Using push() function to construct
# singly linked list
# 17.22.13.14.15
push( 15)
push( 14)
push( 13)
push( 22)
push( 17)
print("Linked list is : ")
 
# Call printList() function to
# display the linked list.
printList(head)
print("Maximum element in linked list: ",end="")
 
# Call largestElement() function to get
# largest element in linked list.
print(largestElement(head))
print("Minimum element in linked list: ",end="")
 
# Call smallestElement() function to get
# smallest element in linked list.
print(smallestElement(head),end="")
 
# This code is contributed by Arnab Kundu

C#

// C# program to find smallest and largest
// elements in singly linked list.
using System;
     
class GfG
{
 
    /* Linked list node */
    class Node
    {
        public int data;
        public Node next;
    }
    static Node head = null;
 
    // Function that returns the largest element
    // from the linked list.
    static int largestElement(Node head)
    {
 
        // Declare a max variable and initialize
        // it with INT_MIN value.
        // INT_MIN is integer type and its value
        // is -32767 or less.
        int max = int.MinValue;
 
        // Check loop while head not equal to NULL
        while (head != null)
        {
 
            // If max is less than head->data then
            // assign value of head->data to max
            // otherwise node point to next node.
            if (max < head.data)
                max = head.data;
            head = head.next;
        }
        return max;
    }
 
    // Function that returns smallest element
    // from the linked list.
    static int smallestElement(Node head)
    {
 
        // Declare a min variable and initialize
        // it with INT_MAX value.
        // INT_MAX is integer type and its value
        // is 32767 or greater.
        int min = int.MaxValue;
 
        // Check loop while head not equal to NULL
        while (head != null)
        {
 
            // If min is greater than head->data then
            // assign value of head->data to min
            // otherwise node point to next node.
            if (min > head.data)
                min = head.data;
 
            head = head.next;
        }
        return min;
    }
 
    // Function that push the element in linked list.
    static void push(int data)
    {
        // Allocate dynamic memory for newNode.
        Node newNode = new Node();
 
        // Assign the data into newNode.
        newNode.data = data;
 
        // newNode->next assign the address of
        // head node.
        newNode.next = (head);
 
        // newNode become the headNode.
        (head) = newNode;
    }
 
    // Display linked list.
    static void printList(Node head)
    {
        while (head != null)
        {
            Console.Write(head.data + " -> ");
            head = head.next;
        }
        Console.WriteLine("NULL");
    }
 
    // Driver code
    public static void Main()
    {
        // Start with empty list
        // head = new Node();
 
        // Using push() function to construct
        // singly linked list
        // 17->22->13->14->15
        push( 15);
        push( 14);
        push( 13);
        push( 22);
        push( 17);
        Console.WriteLine("Linked list is : ") ;
 
        // Call printList() function to
        // display the linked list.
        printList(head);
        Console.Write("Maximum element in linked list: ");
 
        // Call largestElement() function to get
        // largest element in linked list.
        Console.WriteLine(largestElement(head));
        Console.Write("Minimum element in linked list: ");
 
        // Call smallestElement() function to get
        // smallest element in linked list.
        Console.Write(smallestElement(head));
    }
}
 
// This code is contributed by PrinciRaj1992

Javascript

<script>
 
// JavaScript program to find smallest and largest
// elements in singly linked list.
    /* Linked list node */
    class Node {
        constructor(val) {
            this.data = val;
            this.next = null;
        }
    }
    var head = null;
 
    // Function that returns the largest element
    // from the linked list.
    function largestElement(head) {
 
        // Declare a max variable and initialize
        // it with INT_MIN value.
        // INT_MIN is integer type and its value
        // is -32767 or less.
        var max = Number.MIN_VALUE;
 
        // Check loop while head not equal to NULL
        while (head != null) {
 
            // If max is less than head->data then
            // assign value of head->data to max
            // otherwise node point to next node.
            if (max < head.data)
                max = head.data;
            head = head.next;
        }
        return max;
    }
 
    // Function that returns smallest element
    // from the linked list.
    function smallestElement(head) {
 
        // Declare a min variable and initialize
        // it with INT_MAX value.
        // INT_MAX is integer type and its value
        // is 32767 or greater.
        var min = Number.MAX_VALUE;
 
        // Check loop while head not equal to NULL
        while (head != null) {
 
            // If min is greater than head->data then
            // assign value of head->data to min
            // otherwise node point to next node.
            if (min > head.data)
                min = head.data;
 
            head = head.next;
        }
        return min;
    }
 
    // Function that push the element in linked list.
    function push(data) {
        // Allocate dynamic memory for newNode.
        var newNode = new Node();
 
        // Assign the data into newNode.
        newNode.data = data;
 
        // newNode->next assign the address of
        // head node.
        newNode.next = (head);
 
        // newNode become the headNode.
        (head) = newNode;
    }
 
    // Display linked list.
    function printList(head) {
        while (head != null) {
            document.write(head.data + " -> ");
            head = head.next;
        }
        document.write("NULL");
    }
 
    // Driver code
     
        // Start with empty list
        // head = new Node();
 
        // Using push() function to construct
        // singly linked list
        // 17->22->13->14->15
        push(15);
        push(14);
        push(13);
        push(22);
        push(17);
        document.write("Linked list is : <br/>");
 
        // Call printList() function to
        // display the linked list.
        printList(head);
        document.write("<br/>Maximum element in linked list: ");
 
        // Call largestElement() function to get
        // largest element in linked list.
        document.write(largestElement(head));
        document.write("<br/>Minimum element in linked list: ");
 
        // Call smallestElement() function to get
        // smallest element in linked list.
        document.write(smallestElement(head));
 
// This code contributed by Rajput-Ji
 
</script>

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 *