In this program, we need to find out the minimum and maximum value node in the given singly linked list.
We will maintain two variables min and max. Min will hold minimum value node, and max will hold maximum value node. In the above example, 1 will be minimum value node and 8 will be maximum value node. The algorithm to find the maximum and the minimum node is given below.
Algorithm
- Create a class Node which has two attributes: data and next. Next is a pointer to the next node in the list.
- Create another class MinMax which has two attributes: head and tail.
- addNode() will add a new node to the list:
- Create a new node.
- It first checks, whether the head is equal to null which means the list is empty.
- If the list is empty, both head and tail will point to a newly added node.
- If the list is not empty, the new node will be added to end of the list such that tail's next will point to a newly added node. This new node will become the new tail of the list.
a. minNode() will display minimum value node:
- Define a variable min and initialize it with head's data.
- Node current will point to head.
- Iterate through the list by comparing each node's data with min.
- If min is greater than current's data then, min will hold current's data.
- At the end of the list, variable min will hold minimum value node.
- Display the min value.
a. maxNode() will display maximum value node:
- Define a variable max and initialize it with head's data.
- Node current will point to head.
- Iterate through the list by comparing each node's data with max.
- If max is less than current's data then, max will hold current's data.
- At the end of the list, variable max will hold maximum value node.
- Display the max value
Program:
Output: