数据结构之利用递归函数返回带头结点head的单链表中所有结点的最大值

#include <iostream>


using namespace std;


struct LinkNode 
{
int data;
LinkNode *next;
};


void init(LinkNode *&head)
{
head=new LinkNode;
head->next=NULL;
}


void create(LinkNode *&head)
{
int i;
cin>>i;
if(i==0)
head->next=NULL;
else
{
head->next=new LinkNode;
head->next->data=i;
create(head->next);
}
}


int Max(int x,int y)
{
return x>y?x:y;
}


int MaxNode(LinkNode *p)
{
p=p->next;
if(p)
return max(p->data,MaxNode(p));
}


void show(LinkNode *head)
{
if(head->next)
{
cout<<head->next->data<<" ";
show(head->next);
}
}


int main()
{
LinkNode *head;
init(head);
create(head);
MaxNode(head);
cout<<"max="<<MaxNode(head)<<endl;
show(head);

return 0;
}

猜你喜欢

转载自blog.csdn.net/wrc_nb/article/details/80208033
今日推荐