使用递归以 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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP