对于不带头结点的单链表l,设计一个递归算法逆序输出所有结点值。用数组a[]={1,2,5
时间: 2023-11-27 14:51:29 浏览: 107
数据结构 不带头结点的单链表代码
以下是递归算法的实现:
```python
class Node:
def __init__(self, val=None, next=None):
self.val = val
self.next = next
def reverse_print(head: Node):
if head is None:
return
reverse_print(head.next)
print(head.val)
# 测试
a = [1, 2, 5]
head = None
for i in range(len(a)-1, -1, -1):
head = Node(a[i], head)
reverse_print(head)
```
运行结果为:
```
5
2
1
```
首先创建一个`Node`类来表示链表节点。然后递归函数`reverse_print`中,先判断当前节点是否为空,如果不为空就递归输出它后面的所有节点,最后输出当前节点的值。这样就可以逆序输出整个链表了。
在测试代码中,先把数组`a`中的元素逆序插入到链表中,再调用`reverse_print`函数输出。
阅读全文