使用递归以 C++ 打印链表的交替节点
链表是一种线性数据结构,它将元素存储在非连续的内存位置。每个元素都包含一个指向链表中下一个元素的指针。
示例 −
在此问题中,我们给定一个链表,我们需要打印此链表的元素,但仅打印交替元素。我们举一个例子来更好地理解问题,
Input : 2 -> 4 -> 1 -> 67 -> 48 -> 90 Output : 2 -> 1 -> 48
说明 − 我们将在链表上打印交替元素。因此,将打印出第一个、第三个和第五个元素。
我们将使用一个标志元素,它最初为 0,并且会在每次打印元素时增加,否则会减少,并且当标志为 0 时我们将打印节点值。
示例
#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
广告