使用递归:
#include<iostream> using namespace std; struct ListNode { int value; ListNode *next; }; void Print(ListNode *list) { if(list!=NULL) { if(list->next!=NULL) Print(list->next); cout<<list->value<<endl; } } int main() { int n; while(cin>>n) { ListNode *head=(ListNode*)malloc(sizeof(ListNode*)); ListNode *list=head; while(n--) { int m;cin>>m; ListNode *newNode=(ListNode*)malloc(sizeof(ListNode*)); newNode->value=m; list->next=newNode; list=list->next; } list->next=NULL; Print(head->next); } return 0; }
使用栈:
#include<iostream> #include<stack> using namespace std; struct ListNode { int value; ListNode *next; }; void Print(ListNode *list) { stack<ListNode*>s; while(list!=NULL) { s.push(list); list=list->next; } while(!s.empty()) { cout<<s.top()->value<<endl; s.pop(); } } int main() { int n; while(cin>>n) { ListNode *head=(ListNode*)malloc(sizeof(ListNode*)); ListNode *list=head; while(n--) { int m;cin>>m; ListNode *newNode=(ListNode*)malloc(sizeof(ListNode*)); newNode->value=m; list->next=newNode; list=list->next; } list->next=NULL; Print(head->next); } return 0; }