利用递归的特性来实现,非常easy /* * Copyright (c) 2011 alexingcool. All Rights Reserved. */ #include <iostream> using namespace std; int array[] = {5, 7, 6, 9, 11, 10, 8}; const int size = sizeof array / sizeof *array; struct Node { Node(int i = 0, Node *n = NULL) : item(i), next(n) {} int item; Node *next; }; Node* construct(int (&array)[size]) { Node dummy; Node *head = &dummy; for(int i = 0; i < size; i++) { Node *temp = new Node(array[i]); head->next = temp; head = temp; } return dummy.next; } void reversePrint(Node *head) { if(head == NULL) return; reversePrint(head->next); cout << head->item << " "; } void print(Node *head) { while(head) { cout << head->item << " "; head = head->next; } } void main() { Node *head = construct(array); cout << "source link: "; print(head); cout << endl; reversePrint(head); cout << endl; }