C++使用递归来顺序和逆序输出链表的全部元素
作者:野牛程序员:2023-11-20 15:36:36 C++阅读 2809
顺序输出链表的全部元素可以使用递归方式,代码如下:
#include <iostream>
struct Node {
int data;
Node* next;
Node(int val) : data(val), next(nullptr) {}
};
void printList(Node* head) {
if (head == nullptr) {
return;
}
// 输出当前节点的值
std::cout << head->data << " ";
// 递归调用,处理下一个节点
printList(head->next);
}
int main() {
// 构造一个简单的链表
Node* head = new Node(1);
head->next = new Node(2);
head->next->next = new Node(3);
head->next->next->next = new Node(4);
// 顺序输出链表的全部元素
std::cout << "顺序输出链表的全部元素: ";
printList(head);
delete head->next->next->next;
delete head->next->next;
delete head->next;
delete head;
return 0;
}逆序输出链表的全部元素也可以使用递归方式,但需要稍作修改。以下是逆序输出链表的代码:
#include <iostream>
struct Node {
int data;
Node* next;
Node(int val) : data(val), next(nullptr) {}
};
void reversePrintList(Node* head) {
if (head == nullptr) {
return;
}
// 递归调用,处理下一个节点
reversePrintList(head->next);
// 输出当前节点的值
std::cout << head->data << " ";
}
int main() {
// 构造一个简单的链表
Node* head = new Node(1);
head->next = new Node(2);
head->next->next = new Node(3);
head->next->next->next = new Node(4);
// 逆序输出链表的全部元素
std::cout << "逆序输出链表的全部元素: ";
reversePrintList(head);
delete head->next->next->next;
delete head->next->next;
delete head->next;
delete head;
return 0;
}这两个示例中,printList 函数用于顺序输出链表元素,而 reversePrintList 函数用于逆序输出链表元素。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:C++字符数组初始化
- 下一篇:C++怎么使用递归实现数组前N个元素倒序输出
