赞
踩
【背景】
已知f为单链表的表头指针,链表中存储的是整形数据,试写出实现下列运算的递归算法:
1、求链表中的最大整数
2、求链表的节点个数
3、求所有整数的平均值
【源码运行环境】
操作系统:Windows 10
编译环境:Dev C++(基于C99标准)
【思路】
1、构造递归体结束条件(当前访问的节点为NULL)
2、构造递归体操作
3、尽可能使用尾递归操作
【源码实现】
/*
*方法名:findMax
*作用:递归查找链表中的最大值
*参数:链表指针 l, 最大值指针 max ;
*返回值:void
*Author: WellLee
*Last Modified: 2018-12-13 13:28:30
*/
void findMax(Link l, int *max)
{
Link temp = l;
if(temp == NULL)
{
return;
}
if(temp->elem > *max)
{
*max = l->elem;
}
findMax(temp->next, max);
}
/*
*方法名:getLength1
*作用:递归求链表长度
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。