利用递归正序、倒序输出没有头结点的单链表
时间: 2023-08-02 19:05:42 浏览: 41
可以通过递归函数遍历单链表,实现正序或倒序输出。以下是示例代码:
```c++
#include <iostream>
using namespace std;
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(NULL) {}
};
// 正序输出
void printList(ListNode* head) {
if (head == NULL) return;
cout << head->val << " ";
printList(head->next);
}
// 倒序输出
void printListReverse(ListNode* head) {
if (head == NULL) return;
printListReverse(head->next);
cout << head->val << " ";
}
int main() {
// 创建单链表 1->2->3->4->5
ListNode* head = new ListNode(1);
head->next = new ListNode(2);
head->next->next = new ListNode(3);
head->next->next->next = new ListNode(4);
head->next->next->next->next = new ListNode(5);
// 正序输出
cout << "正序输出:";
printList(head);
cout << endl;
// 倒序输出
cout << "倒序输出:";
printListReverse(head);
cout << endl;
return 0;
}
```
输出结果为:
```
正序输出:1 2 3 4 5
倒序输出:5 4 3 2 1
```