有头结点单链表逆置输入形式:第一行输入一个整数N;第二行输入N个整数,以空格作为分隔,创建单链表;输出形式:输出逆置后的单链表,元素之间以空格分隔。
时间: 2023-05-14 13:06:30 浏览: 61
以下是实现该功能的 C++ 代码:
```cpp
#include <iostream>
using namespace std;
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(NULL) {}
};
ListNode* reverseList(ListNode* head) {
ListNode* prev = NULL;
ListNode* curr = head;
while (curr != NULL) {
ListNode* next = curr->next;
curr->next = prev;
prev = curr;
curr = next;
}
return prev;
}
int main() {
int n;
cin >> n;
ListNode* head = new ListNode(0);
ListNode* curr = head;
for (int i = 0; i < n; i++) {
int val;
cin >> val;
curr->next = new ListNode(val);
curr = curr->next;
}
head = reverseList(head->next);
while (head != NULL) {
cout << head->val << " ";
head = head->next;
}
cout << endl;
return 0;
}
```
该程序使用头结点单链表来存储输入的整数序列,并通过 reverseList 函数将其逆置。最后,程序输出逆置后的单链表元素。