题目描述
利用单链表表示一个整数序列,通过一趟遍历在单链表中确定值最大的结点。
输入
第一行输入元素个数n;
第二行依次输入链表的n个元素(以空格间隔)。
输出
输出单链表的最大值。
样例输入
5 2 1 3 5 4
样例输出
5
#include <stdlib.h>
#include <stdio.h>
typedef int ElemType;
typedef int Status;
typedef struct LNode
{
ElemType data;
struct LNode *next;
} LNode ,*linkList;
void CreateList_R(linkList *L, int n)
{
scanf("%d",&n);
int i;
linkList s,r;
*L=(linkList)malloc(sizeof(LNode));
(*L)->next =NULL;
r=*L; //r始终指向表尾结点,开始时指向头结点//就把他当成为尾点使用吧
for(i=0;i<n;i++)
{
s=(linkList)malloc(sizeof(LNode));
scanf("%d",&s->data ) ;
r->next=s;
r=s;//修改尾指针
}
r->next =NULL;//终端结点next域置为NULL
}
int FindMax(linkList L)
{
linkList p;
int s;
p=L->next;
s=(L->next)->data ;
while(p!=NULL)
{
if(s<p->data ){
s=p->data;
}
p=p->next;
}
printf("%d",s);
}
int main()
{
linkList L;
int n,x;
ElemType e;
CreateList_R(&L, n);
FindMax(L);
return 0;
}