标签:
开始看这个题目的时候,还真觉得他娘的高大上啊。
#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