#include <iostream>using namespace std;struct Node{int nData;Node * pNext;};Node *CreateList(Node* pHead){Node * pTemp;for(int i = 1;i<10;i++){pTemp = new Node();pTemp->nData = i;pTemp->pNext = pHead;pHead = pTemp;}return pHead;}Node *ReverseList(Node* pHead){Node* p1 = pHead;Node* p2 = NULL;while(p1){Node * pTemp = p1->pNext;p1->pNext = p2;p2 = p1;p1 = pTemp;}return p2;}void ReverseList(Node** pHead){Node* p1 = *pHead;Node* p2 = NULL;while(p1){Node * pTemp = p1->pNext;p1->pNext = p2;p2 = p1;p1 = pTemp;}*pHead = p2;}Node * ReverseList_Digui(Node* pHead,Node* pHead2 = NULL){if(pHead == NULL)return pHead2;Node * pTemp = pHead->pNext;pHead->pNext = pHead2;return ReverseList_Digui(pTemp,pHead);}void Printf(Node* pHead){Node * pTemp = pHead;while(pTemp){cout<<pTemp->nData<<",";pTemp = pTemp->pNext;}cout<<endl;}int main(){Node * pHead;pHead = new Node();pHead->nData = 0;pHead->pNext=NULL;pHead = CreateList(pHead);Printf(pHead);pHead = ReverseList(pHead);Printf(pHead);ReverseList(&pHead);Printf(pHead);pHead = ReverseList_Digui(pHead);Printf(pHead);getchar();}