12.对 于不带头结点的单链表L,设计一个递归算法逆序输出所有结点值。 13/对于不带头结点的非空单链表L,设计一个递归算法返回最大值结点的地址(假设这样的结点唯一)。
时间: 2024-05-10 15:13:45 浏览: 123
编写算法依次访问无头结点的单循环链表.doc
5星 · 资源好评率100%
好的,我明白了。下面是我的回答:
12. 递归算法逆序输出单链表L的所有结点值:
```c
void print_reverse(Node *node) {
if (node == NULL) {
return;
}
print_reverse(node->next); // 递归调用,先输出后面的结点
printf("%d ", node->data); // 输出当前结点的值
}
```
13. 递归算法返回单链表L中最大值结点的地址:
```c
Node *max_node(Node *node) {
if (node->next == NULL) {
return node; // 只有一个结点,返回当前结点
}
Node *max = max_node(node->next); // 递归调用,找到后续结点中的最大值
return (node->data > max->data) ? node : max; // 返回当前结点与后续结点中的最大值
}
```
希望能够解答您的疑问。如果您还有其他问题,可以随时问我。
阅读全文