建立一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入0时,表示结束,且输出的数字与输入的数字位置相反
时间: 2023-12-14 15:36:19 浏览: 72
以下是基于 C++ 的链表实现代码:
```cpp
#include <iostream>
using namespace std;
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(nullptr) {}
};
ListNode* createList() {
ListNode* head = new ListNode(-1);
ListNode* cur = head;
int num;
cin >> num;
while (num != 0) {
ListNode* node = new ListNode(num);
cur->next = node;
cur = node;
cin >> num;
}
return head;
}
void reversePrint(ListNode* head) {
if (!head) {
return;
}
reversePrint(head->next);
if (head->val != -1) {
cout << head->val << " ";
}
}
int main() {
ListNode* head = createList();
reversePrint(head->next);
cout << endl;
return 0;
}
```
时间复杂度为 O(n),空间复杂度为 O(n),其中 n 是链表的长度。
阅读全文