একটি লিংকড লিস্ট দেওয়া আছে। এর এলিমেন্টগুলো প্রিন্ট করতে হবে, কিন্তু শুধু অ্যাল্টারনেট (একটা বাদে একটা) এলিমেন্টগুলো।
উদাহরণ: ইনপুট: 2 → 4 → 1 → 67 → 48 → 90
আউটপুট: 2 → 1 → 48 (প্রথম, তৃতীয়, পঞ্চম এলিমেন্ট)।
একটি ফ্ল্যাগ ভেরিয়েবল (শুরুতে ০) রাখা হয়। লিস্ট ট্রাভার্সালের সময় ফ্ল্যাগ ০ হলে নোডের মান প্রিন্ট করে ফ্ল্যাগ ১ করা হয়, অন্যথায় ফ্ল্যাগ ০ করা হয়।
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node* next;
};
void printAlternateNode(struct Node* head) {
int flag = 0;
while (head != NULL) {
if (flag == 0) {
printf(" %d ", head->data);
flag = 1;
} else
flag = 0;
head = head->next;
}
}
void insertNode(struct Node** head_ref, int new_data) {
struct Node* new_node = (struct Node*)malloc(sizeof(struct Node));
new_node->data = new_data;
new_node->next = (*head_ref);
(*head_ref) = new_node;
}
int main() {
struct Node* head = NULL;
insertNode(&head, 23);
insertNode(&head, 4);
insertNode(&head, 98);
insertNode(&head, 5);
insertNode(&head, 71);
printAlternateNode(head);
return 0;
}
71 98 23