একটি লিংকড লিস্ট দেওয়া আছে। অল্টারনেট নোডগুলো (০, ২, ৪, ৬... ইনডেক্স) এর ডেটার যোগফল বের করতে হবে।
ইনপুট
4 → 12 → 10 → 76 → 9 → 26 → 1
আউটপুট
24
ব্যাখ্যা — অল্টারনেট: 4 + 10 + 9 + 1 = 24।
ইটেরেটিভ পদ্ধতি
int sumAlternateNodeIt(Node* head){
bool flag = true; int sum = 0;
while(head){
if(flag) sum += head->data;
flag = !flag;
head = head->next;
}
return sum;
}
রিকারসিভ পদ্ধতি
void sumAlternateNodeRec(Node* node, int &sum, bool flag = true){
if(!node) return;
if(flag) sum += node->data;
sumAlternateNodeRec(node->next, sum, !flag);
}
পূর্ণ কোড (ইটেরেটিভ)
#include <iostream>
using namespace std;
struct Node{ int data; Node* next; };
void pushNode(Node** head, int data){
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = data; newNode->next = *head; *head = newNode;
}
int sumAlternateNodeIt(Node* head){
bool flag = true; int sum = 0;
while(head){
if(flag) sum += head->data;
flag = !flag; head = head->next;
}
return sum;
}
int main(){
Node* head = NULL;
pushNode(&head, 54); pushNode(&head, 12);
pushNode(&head, 87); pushNode(&head, 1);
pushNode(&head, 99); pushNode(&head, 11);
cout << "Sum of alternate nodes: " << sumAlternateNodeIt(head);
return 0;
}
আউটপুট
The sum of alternate nodes is 24