单链表实现字符串的逆序输出用递归
时间: 2023-06-24 11:03:01 浏览: 125
下面是使用递归实现单链表字符串逆序输出的示例代码:
```c++
#include <iostream>
#include <string>
using namespace std;
struct Node {
char data;
Node* next;
Node(char c) : data(c), next(nullptr) {}
};
void reversePrint(Node* node) {
if (node == nullptr) {
return;
}
reversePrint(node->next);
cout << node->data;
}
int main() {
string str = "Hello, world!";
Node* head = nullptr, *tail = nullptr;
for (char c : str) {
if (head == nullptr) {
head = tail = new Node(c);
} else {
tail->next = new Node(c);
tail = tail->next;
}
}
reversePrint(head);
return 0;
}
```
递归函数`reversePrint`的实现很简单,它的作用是先递归输出链表的尾部字符,然后再输出链表当前节点的字符。递归的终止条件是节点为空。在主函数中,我们先构造一个单链表,然后调用递归函数输出字符串的逆序。
阅读全文