输入n个数,要求程序按输入时的顺序建一单链表。 现在请你反转链表,并输出反转后的链表。
时间: 2024-04-09 17:27:44 浏览: 153
好的,我可以帮助你反转链表并输出反转后的结果。以下是一个示例程序,可以实现这个功能:
```cpp
#include <iostream>
using namespace std;
struct Node {
int data;
Node* next;
};
// 反转链表函数
Node* reverseLinkedList(Node* head) {
Node* prev = nullptr;
Node* curr = head;
while (curr != nullptr) {
Node* nextNode = curr->next;
curr->next = prev;
prev = curr;
curr = nextNode;
}
return prev;
}
// 打印链表函数
void printLinkedList(Node* head) {
Node* curr = head;
while (curr != nullptr) {
cout << curr->data << " ";
curr = curr->next;
}
cout << endl;
}
int main() {
int n;
cin >> n;
Node* head = nullptr;
Node* tail = nullptr;
// 构建链表
for (int i = 0; i < n; i++) {
int num;
cin >> num;
Node* newNode = new Node();
newNode->data = num;
newNode->next = nullptr;
if (head == nullptr) {
head = newNode;
tail = newNode;
} else {
tail->next = newNode;
tail = newNode;
}
}
// 反转链表
head = reverseLinkedList(head);
// 输出反转后的链表
printLinkedList(head);
return 0;
}
```
这个程序首先读取一个整数 `n`,表示要输入的数字个数。然后,使用一个循环按输入的顺序构建一个单链表。接下来,调用 `reverseLinkedList` 函数将链表反转。最后,调用 `printLinkedList` 函数打印反转后的链表。
希望这个程序可以满足你的需求!如果还有其他问题,请随时提问。
阅读全文