递归求解单链表中的最大值(很简便的方法!nice)
#include <iostream>
using namespace std;
typedef struct Lnode{
int data;
struct Lnode *next;
}Lnode,*Linklist;
void Initlist(Linklist &L){
L=new Lnode;
L->next=NULL;
}
void Creatlist(Linklist &L,int e){
Lnode *p=new Lnode;
p->data=e;
p->next=NULL;
Lnode *cur=L;
while(cur->next){
cur=cur->next;
}
cur->next=p;
p->next=NULL;
}
int Findmax(Linklist &L){
if(L->next==NULL)
return L->data;
int max=L->next->data;
if(max>Findmax(L->next))
return max;
else
return Findmax(L->next);
}
int main(){
int n;
while(cin>>n&&n!=0){
Linklist L;
Initlist(L);
for(int i=0;i<n;i++){
int e; cin>>e;
Creatlist(L,e);
}
cout<<Findmax(L)<<endl;
}
}