要在不翻转单链表的情况下从尾部到头部进行迭代,可以使用递归的方式来实现。
首先,定义一个递归函数,该函数接受一个单链表的头节点作为参数。在这个递归函数中,先递归调用自身,传入头节点的下一个节点,直到传入的节点为空(即到达链表的尾部)。然后再输出当前节点的值。
下面是一个示例代码:
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def printListReverse(head):
if head is None:
return
printListReverse(head.next)
print(head.val)
# 示例用法
# 创建一个单链表: 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)
printListReverse(head)
运行上述代码,将会按照从尾部到头部的顺序输出链表的值:
5
4
3
2
1
下一篇:不翻转的最小画刷大小