#include "stdio.h" struct ListNode{ int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; class Solution{ public: ListNode* Reverse(ListNode *head){ ListNode *new_head = NULL; while (head){ ListNode *next = head->next; head->next=new_head; new_head=head; head=next; } return new_head; } }; int main(){ ListNode a(1); ListNode b(2); ListNode c(3); ListNode d(4); ListNode e(5); a.next = &b; b.next = &c; c.next = &d; d.next = &e; Solution solve; ListNode *head = &a; printf("Before reverse:\n"); while(head){ printf("%d\n", head->val); head = head->next; } head = solve.Reverse(&a); printf("After reverse:\n"); while(head){ printf("%d\n", head->val); head = head->next; } return 0; }
标签:head,ListNode,val,反转,C++,next,链表,printf,new From: https://www.cnblogs.com/wzf-Learning/p/16797338.html