इस समस्या में, हमें एक डबल लिंक्ड लिस्ट LL. हमारा काम है डबली लिंक्ड लिस्ट में सबसे बड़ा नोड ढूंढना ।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
Input : linked-list = 5 -> 2 -> 9 -> 8 -> 1 -> 3 Output : 9
समाधान दृष्टिकोण
समस्या को हल करने का एक सरल तरीका लिंक्ड-लिस्ट को ट्रेस करना है और यदि मैक्स का डेटा मान मैक्सवेल के डेटा से अधिक है। लिंक की गई सूची का पता लगाने के बाद, हम macVal नोड्स डेटा वापस कर देंगे।
उदाहरण
हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम
#include <iostream> using namespace std; struct Node{ int data; struct Node* next; struct Node* prev; }; void push(struct Node** head_ref, int new_data){ struct Node* new_node = (struct Node*)malloc(sizeof(struct Node)); new_node->data = new_data; new_node->prev = NULL; new_node->next = (*head_ref); if ((*head_ref) != NULL) (*head_ref)->prev = new_node; (*head_ref) = new_node; } int findLargestNodeInDLL(struct Node** head_ref){ struct Node *maxVal, *curr; maxVal = curr = *head_ref; while (curr != NULL){ if (curr->data > maxVal->data) maxVal = curr; curr = curr->next; } return maxVal->data; } int main(){ struct Node* head = NULL; push(&head, 5); push(&head, 2); push(&head, 9); push(&head, 1); push(&head, 3); cout<<"The largest node in doubly linked-list is "<<findLargestNodeInDLL(&head); return 0; }
आउटपुट
The largest node in doubly linked-list is 9