任务描述
本关任务:利用单链表表示一个整数序列,通过一趟遍历在单链表中确定值最大的结点。
编程要求
输入
多组数据,每组数据有两行,第一行为链表的长度n,第二行为链表的n个元素(元素之间用空格分隔)。当n=0时输入结束。
输出
对于每组数据分别输出一行,输出每个链表的最大值。
测试说明
平台会对你编写的代码进行测试:
代码
#include <iostream>
using namespace std;
typedef struct LNode
{
int data;
struct LNode* next;
}LNode, * LinkList;
void CreateList_R(LinkList& L, int n)
{
// 尾插法
L=new LNode;
L->next=NULL;
int i;
LinkList p=L;
for(i=1;i<=n;i++){
LinkList s;
s=new LNode;
scanf("%d",&s->data);
s->next=NULL;
p->next=s;
p=s;
}
}
int MaxData(LinkList &L)
{//确定单链表中值最大的结点
LinkList max=new LNode,p;
p=L->next;
max->data=p->data;
p=p->next;
while(p)
{
if(p->data > max->data)
max->data=p->data;
p=p->next;
}
return max->data;
}