数据结构(C语言)算法设计:已知f为单链表的表头指针,链表中存储的都是整型数据,试写出实现下列运算的递归算法: ①求链表中的最大整数; ②求链表的结点个数;
时间: 2024-11-29 17:33:46 浏览: 10
C语言 数据结构双向链表简单实例
在C语言中,你可以使用递归来实现单链表的一些基本操作。以下是针对题目中给出的两个运算的递归算法:
1. **求链表中的最大整数**(递归算法)
```c
typedef struct ListNode {
int val;
struct ListNode* next;
} ListNode;
// 函数声明,递归寻找最大值
int findMax(ListNode* head) {
// 基线条件:如果链表为空,则返回INT_MIN作为初始最大值
if (head == NULL)
return INT_MIN;
// 递归条件:如果链表不空,比较当前节点值与剩余部分的最大值
else {
int maxSoFar = head->val; // 当前节点的最大值
int remainingMax = findMax(head->next); // 递归获取剩余部分的最大值
// 返回较大者
return (maxSoFar > remainingMax) ? maxSoFar : remainingMax;
}
}
```
阅读全文