#include using namespace std;

//定义单链表结点结构体 struct ListNode { int val; ListNode* next; ListNode(int x) : val(x), next(NULL) {} };

//创建单链表 ListNode* createList() { ListNode* head = new ListNode(0); //创建头结点 ListNode* p = head; int num; cin >> num; while (num != -1) { ListNode* q = new ListNode(num); p->next = q; p = q; cin >> num; } return head->next; }

//就地逆置单链表 ListNode* reverseList(ListNode* head) { ListNode* p = head; ListNode* q = NULL; while (p != NULL) { ListNode* tmp = p->next; p->next = q; q = p; p = tmp; } return q; }

//输出单链表 void printList(ListNode* head) { ListNode* p = head; while (p != NULL) { cout << p->val << ' '; p = p->next; } cout << endl; }

int main() { ListNode* head = createList(); //创建单链表 head = reverseList(head); //就地逆置单链表 printList(head); //输出逆置后的单链表 return 0; }

C++ 实现单链表就地逆置

原文地址: https://www.cveoy.top/t/topic/nbv7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录