
#ifndef LIST_INSERTREMOVEPRINT_H#define LIST_INSERTREMOVEPRINT_H#include<iostream>#include<stack>struct ListNode{int val;struct ListNode *nxt;};void addListNode(struct ListNode**list,int value){struct ListNode *nodeInsert=(struct ListNode*)(malloc(sizeof(struct ListNode)));nodeInsert->val=value;nodeInsert->nxt=NULL;if(*list==NULL){*list=nodeInsert;return ;}struct ListNode *iter=*list;while(iter->nxt!=NULL){iter=iter->nxt;}iter->nxt=nodeInsert;}void removeListNode(struct ListNode**head,int value){if(*head==NULL||head==NULL){return ;}struct ListNode *deleteNode=NULL;if((*head)->val==value){deleteNode=*head;(*head)=(*head)->nxt;delete deleteNode;return;}struct ListNode *pnode=*head;while(pnode!=NULL){pnode=pnode->nxt;if(pnode->val==value){deleteNode=pnode;pnode=pnode->nxt;delete deleteNode;return ;}}}void invertPrint(struct ListNode**head){if(head==NULL||*head==NULL){return;}else{struct ListNode *iter=*head;std::stack<int> listStack;while(iter!=NULL){listStack.push(iter->val);iter=iter->nxt;}while(!listStack.empty()){std::cout<<listStack.top();listStack.pop();}return ;}}#endif
int main(){struct ListNode *list=NULL;addListNode(&list,2);addListNode(&list,3);addListNode(&list,4);invertPrint(&list);}
void invertPrint_recursive(struct ListNode*head){if(head==NULL){return ;}else{if(head->nxt!=NULL){invertPrint_recursive(head->nxt);}std::cout<<head->val<<std::endl;}- }
原文:http://www.cnblogs.com/yml435/p/4655495.html