逆向打印、销毁、查找结点之递归实现

来源:互联网 发布:godaddy虚拟主机 java 编辑:程序博客网 时间:2024/05/19 14:56
#include<iostream>using namespace std;template <class T>struct Node{T data;Node<T>* pNext;};//逆向打印单链表template<class T>void PrintNodeFromTailtoHead(Node<T>* pHead){if(pHead){PrintNodeFromTailtoHead(pHead->pNext);cout<<pHead->data<<endl;}}//逆向摧毁链表中的各个节点template<class T>void destroyList(Node<T>* &pHead)//这里必须是引用或者二级指针{if(pHead){destroyList(pHead->pNext);delete pHead;pHead=NULL;}}//在单链表中逆向查找数据为data的节点template<class T>Node<T>* FindNode(Node<T>* pHead,T data){if(pHead){Node<T>* pNode=FindNode(pHead->pNext,data);if(pNode)return pNode;if(pHead->data==data)return pHead;}return NULL;}int main(){Node<int>* p1=new Node<int>;Node<int>* p2=new Node<int>;Node<int>* p3=new Node<int>;p1->data=1;p2->data=2;p3->data=3;p1->pNext=p2;p2->pNext=p3;p3->pNext=NULL;//PrintNodeFromTailtoHead(p1);//destroyList(p1);return 0;}

0 0
原创粉丝点击