假设单链表中存放的是整数 1、用递归方法求解单链表的长度; 2、用递归方法求解单链表中所有数的平均数; 3、用递归方法求单链表中倒数第k个结点元素。
时间: 2024-05-11 14:15:45 浏览: 7
1. 求单链表长度的递归方法如下:
```
int getLength(ListNode* head) {
if (head == nullptr) {
return 0;
}
return 1 + getLength(head->next);
}
```
2. 求单链表所有数的平均数的递归方法如下:
```
double getAverage(ListNode* head) {
if (head == nullptr) {
return 0;
}
int sum = head->val;
int count = 1;
if (head->next != nullptr) {
pair<int, int> result = getSumAndCount(head->next);
sum += result.first;
count += result.second;
}
return (double)sum / count;
}
```
3. 求单链表中倒数第k个结点元素的递归方法如下:
```
ListNode* getKthFromEnd(ListNode* head, int k) {
if (head == nullptr) {
return nullptr;
}
ListNode* node = getKthFromEnd(head->next, k);
if (node != nullptr) {
return node;
}
if (k == 1) {
return head;
}
return nullptr;
}
```