【核心代码】
LNode* FindMax(LNode* p, LNode* maxp)
{
if (p == NULL)
return NULL;
else
{
if (p->data > maxp->data)
{
maxp = p;
if (p->next != NULL)
{
maxp = FindMax(p->next, p);
}
}
else if(p->next != NULL)
{
maxp = FindMax(p->next, maxp);
}
return maxp;
}
}
【测试代码】
#include <stdio.h>
#include <stdlib.h>
typedef struct LNode
{
int data;
struct LNode *next;
} LNode;
void Print(LNode *L)///输出函数
{
LNode *p;
p = L;
while ((p->next) != NULL)
{
printf("%d ", p->next->data);
p = p->next;
}
}
///建立链表及初始化
LNode *CreatL()
{
LNode *L = (LNode *)malloc(sizeof(LNode)); //申请头结点空间
L->next = NULL; //初始化一个空链表
LNode *r;
r = L; //r始终指向终端结点,开始时指向头结点
int x; /