একটি লিঙ্কড লিস্ট দেওয়া থাকলে, সেটিতে পিক এলিমেন্ট (দوپাশের নোড চেয়ে বড় মান বালা নোড) বের করতে হবে।
পদ্ধতি
- নোড স্ট্রাকচার ও ইনসার্ট ফাংশন তৈরি করুন।
- খালি লিস্ট বা একই নোডের কেস হ্যান্ডেল করুন।
prevভেরিয়েবলে আগের নোডের মান রাখুন।- লিস্ট ট্রাভার্স করে বর্তমান নোডের মান
prevএবংnext-এর চেয়ে বড় কিনা চেক করুন। - শেষ নোড আলাদাভাবে চেক করুন।
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
struct Node { int data; Node* next; };
void insert(Node** head, int data) {
Node* n = new Node(); n->data = data; n->next = *head; *head = n;
}
int findPeakElement(Node* head) {
if (!head) return -1;
if (!head->next) return head->data;
int prev = head->data;
Node* cur;
for (cur = head->next; cur->next; cur = cur->next) {
if (cur->data > cur->next->data && cur->data > prev)
return cur->data;
prev = cur->data;
}
if (cur->data > prev) return cur->data;
return -1;
}
int main() {
Node* head = NULL;
insert(&head, 7); insert(&head, 4); insert(&head, 5);
insert(&head, 2); insert(&head, 3);
cout << findPeakElement(head) << endl;
return 0;
}
আউটপুট
5