编写一个能将链表使用递归方法倒叙输出的小程序。数据结构
时间: 2024-11-09 14:17:15 浏览: 22
在许多编程语言中,包括Python,可以使用递归的方式来反转链表。这里是一个简单的Python示例,展示如何通过递归遍历链表并反转节点顺序:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def reverse_list_recursively(head):
# 如果链表为空或只有一个元素,直接返回头节点
if not head or not head.next:
return head
# 递归处理剩余部分,然后把当前节点指向它的前驱
new_head = reverse_list_recursively(head.next)
head.next.next = head # 将head的next指向前一个节点
head.next = None # 更新head的next为None
return new_head # 返回新的头部节点
# 使用示例
# 创建链表:1 -> 2 -> 3 -> 4 -> 5
head = ListNode(1)
head.next = ListNode(2)
head.next.next = ListNode(3)
head.next.next.next = ListNode(4)
head.next.next.next.next = ListNode(5)
reversed_head = reverse_list_recursively(head)
# 现在链表应该倒序了:5 -> 4 -> 3 -> 2 -> 1
# 输出倒序后的链表
current = reversed_head
while current:
print(current.val, end=" ")
current = current.next
```
这个函数会递归地找到链表的最后一个节点,然后从那里开始依次连接每个节点到新链表的前面,直到整个链表被反转。
阅读全文