之前类似的情况碰到过好多次,自己也解决过,不知怎么到了笔试的时候反而会写错。
这样给我一个编译器,一切靠它来搞定的想法还是太幼稚啊。
#include <iostream> using namespace std; typedef struct ListNode{ int data; struct ListNode* next; }*List; void printList(ListNode* head); List ReList(List head); int main() { ListNode *head,*p,*q; head=new ListNode; head->data=0; head->next=NULL; p=head; for (int i=1;i<10;i++) { q=new ListNode; q->data=i; q->next=NULL; p->next=q; p=q; } printList(head); List back=ReList(head); printList(back); system("pause"); return 0; } List ReList(List head) { List next,prev=NULL; while(head) { next=head->next; head->next=prev; prev=head; head=next; } return prev; } void printList(ListNode* head) { while(head) { cout<<head->data<<' '; head=head->next; } cout<<endl; }