C++使用递归来顺序和逆序输出链表的全部元素
作者:野牛程序员:2023-11-20 15:36:36 C++阅读 2389
顺序输出链表的全部元素可以使用递归方式,代码如下:
#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个元素倒序输出