c++已知f为单链表的表头指针,链表中存储的都是整型数据,试写出实现下列运算的递归算法。 (1)求链表中的最大整数; (2)求所有整数的平均值;
时间: 2024-06-05 09:06:13 浏览: 110
单链表的递归算法
1. 求链表中的最大整数
int maxNum(ListNode* head) {
if(head == nullptr) { // 链表为空,返回INT_MIN
return INT_MIN;
}
int maxVal = maxNum(head->next); // 递归求解子问题
return max(head->val, maxVal); // 返回当前节点值和子问题解的最大值
}
2. 求所有整数的平均值
double average(ListNode* head, int count = 0, int sum = 0) {
if(head == nullptr) { // 链表遍历完成,返回平均值
return (double)sum / count;
}
return average(head->next, count + 1, sum + head->val); // 递归求解子问题,并累加count和sum
}
阅读全文