从尾到头反向输出每个单链表结点的值
时间: 2024-06-08 16:08:03 浏览: 83
程序员面试题精选 题很多
要尾到头反向输出每个单链表节点的值,可以使用递归或者栈的方式来实现。下面以递归的方式来说明:
首先,定义一个递归函数,该函数接受一个链表节点作为参数。在函数中,判断当前节点是否为空,如果为空,则返回;如果不为空,则递归调用该函数传入下一个节点。然后再输出当前节点的值。
具体步骤如下:
1. 定义一个递归函数,命名为print_reverse,参数为当前节点。
2. 在函数内部,先判断当前节点是否为空,如果为空,则返回。
3. 如果当前节点不为空,则递归调用print_reverse函数,传入下一个节点。这样就可以实现递归遍历链表。
4. 在递归调用后,输出当前节点的值。
以下是一个示例代码:
```
class Node:
def __init__(self, value):
self.value = value
self.next = None
def print_reverse(node):
if node is None:
return
print_reverse(node.next)
print(node.value)
# 创建链表
head = Node(1)
node2 = Node(2)
node3 = Node(3)
head.next = node2
node2.next = node3
# 从尾到头反向输出每个节点的值
print_reverse(head)
```
输出结果为:
```
3
2
1
```
通过递归的方式,我们可以从尾到头反向输出每个单链表节点的值。递归的原理是先遍历到链表的最后一个节点,然后再依次向前输出每个节点的值。
阅读全文