用递归方法遍历单链表。 输入输出格式 输入格式:两行,第一行为链表长度n,第二行是链表数据序列,n个整数 输出格式:遍历链表的结果,以空格隔开
时间: 2024-12-21 11:30:03 浏览: 1
用递归方法遍历单链表通常涉及到将当前节点的数据添加到结果中,然后对剩余的链表(如果存在)递归地调用同样的过程。以下是使用Python实现的一个简单例子:
```python
# 定义链表节点
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def recursive_print_linked_list(head):
# 基线条件:当链表为空或者只有一个元素时返回元素值
if head is None or head.next is None:
return str(head.val) if head else ""
# 递归情况:将头结点的值加上下一层递归的结果
return str(head.val) + " " + recursive_print_linked_list(head.next)
# 示例输入
n = int(input("请输入链表长度:"))
nodes = list(map(int, input("请输入链表数据序列(以空格分隔):").split()))
# 构建链表
head = ListNode(nodes[0])
current = head
for i in nodes[1:]:
current.next = ListNode(i)
current = current.next
# 打印链表
result = recursive_print_linked_list(head)
print("遍历链表的结果:", result)
```
在这个代码中,`recursive_print_linked_list`函数是一个递归函数,它会一直调用自身直到遇到链表的末尾。每次调用时,都会检查当前节点是否为空,并在其不为空的情况下将值加入结果并继续处理下一个节点。
阅读全文